TianoCore EDK2 master
Loading...
Searching...
No Matches
Smbios.h File Reference

Go to the source code of this file.

Data Structures

struct  _EFI_SMBIOS_PROTOCOL
 

Macros

#define EFI_SMBIOS_PROTOCOL_GUID    { 0x3583ff6, 0xcb36, 0x4940, { 0x94, 0x7e, 0xb9, 0xb3, 0x9f, 0x4a, 0xfa, 0xf7 }}
 
#define EFI_SMBIOS_TYPE_BIOS_INFORMATION   SMBIOS_TYPE_BIOS_INFORMATION
 
#define EFI_SMBIOS_TYPE_SYSTEM_INFORMATION   SMBIOS_TYPE_SYSTEM_INFORMATION
 
#define EFI_SMBIOS_TYPE_BASEBOARD_INFORMATION   SMBIOS_TYPE_BASEBOARD_INFORMATION
 
#define EFI_SMBIOS_TYPE_SYSTEM_ENCLOSURE   SMBIOS_TYPE_SYSTEM_ENCLOSURE
 
#define EFI_SMBIOS_TYPE_PROCESSOR_INFORMATION   SMBIOS_TYPE_PROCESSOR_INFORMATION
 
#define EFI_SMBIOS_TYPE_MEMORY_CONTROLLER_INFORMATION   SMBIOS_TYPE_MEMORY_CONTROLLER_INFORMATION
 
#define EFI_SMBIOS_TYPE_MEMORY_MODULE_INFORMATON   SMBIOS_TYPE_MEMORY_MODULE_INFORMATON
 
#define EFI_SMBIOS_TYPE_CACHE_INFORMATION   SMBIOS_TYPE_CACHE_INFORMATION
 
#define EFI_SMBIOS_TYPE_PORT_CONNECTOR_INFORMATION   SMBIOS_TYPE_PORT_CONNECTOR_INFORMATION
 
#define EFI_SMBIOS_TYPE_SYSTEM_SLOTS   SMBIOS_TYPE_SYSTEM_SLOTS
 
#define EFI_SMBIOS_TYPE_ONBOARD_DEVICE_INFORMATION   SMBIOS_TYPE_ONBOARD_DEVICE_INFORMATION
 
#define EFI_SMBIOS_TYPE_OEM_STRINGS   SMBIOS_TYPE_OEM_STRINGS
 
#define EFI_SMBIOS_TYPE_SYSTEM_CONFIGURATION_OPTIONS   SMBIOS_TYPE_SYSTEM_CONFIGURATION_OPTIONS
 
#define EFI_SMBIOS_TYPE_BIOS_LANGUAGE_INFORMATION   SMBIOS_TYPE_BIOS_LANGUAGE_INFORMATION
 
#define EFI_SMBIOS_TYPE_GROUP_ASSOCIATIONS   SMBIOS_TYPE_GROUP_ASSOCIATIONS
 
#define EFI_SMBIOS_TYPE_SYSTEM_EVENT_LOG   SMBIOS_TYPE_SYSTEM_EVENT_LOG
 
#define EFI_SMBIOS_TYPE_PHYSICAL_MEMORY_ARRAY   SMBIOS_TYPE_PHYSICAL_MEMORY_ARRAY
 
#define EFI_SMBIOS_TYPE_MEMORY_DEVICE   SMBIOS_TYPE_MEMORY_DEVICE
 
#define EFI_SMBIOS_TYPE_32BIT_MEMORY_ERROR_INFORMATION   SMBIOS_TYPE_32BIT_MEMORY_ERROR_INFORMATION
 
#define EFI_SMBIOS_TYPE_MEMORY_ARRAY_MAPPED_ADDRESS   SMBIOS_TYPE_MEMORY_ARRAY_MAPPED_ADDRESS
 
#define EFI_SMBIOS_TYPE_MEMORY_DEVICE_MAPPED_ADDRESS   SMBIOS_TYPE_MEMORY_DEVICE_MAPPED_ADDRESS
 
#define EFI_SMBIOS_TYPE_BUILT_IN_POINTING_DEVICE   SMBIOS_TYPE_BUILT_IN_POINTING_DEVICE
 
#define EFI_SMBIOS_TYPE_PORTABLE_BATTERY   SMBIOS_TYPE_PORTABLE_BATTERY
 
#define EFI_SMBIOS_TYPE_SYSTEM_RESET   SMBIOS_TYPE_SYSTEM_RESET
 
#define EFI_SMBIOS_TYPE_HARDWARE_SECURITY   SMBIOS_TYPE_HARDWARE_SECURITY
 
#define EFI_SMBIOS_TYPE_SYSTEM_POWER_CONTROLS   SMBIOS_TYPE_SYSTEM_POWER_CONTROLS
 
#define EFI_SMBIOS_TYPE_VOLTAGE_PROBE   SMBIOS_TYPE_VOLTAGE_PROBE
 
#define EFI_SMBIOS_TYPE_COOLING_DEVICE   SMBIOS_TYPE_COOLING_DEVICE
 
#define EFI_SMBIOS_TYPE_TEMPERATURE_PROBE   SMBIOS_TYPE_TEMPERATURE_PROBE
 
#define EFI_SMBIOS_TYPE_ELECTRICAL_CURRENT_PROBE   SMBIOS_TYPE_ELECTRICAL_CURRENT_PROBE
 
#define EFI_SMBIOS_TYPE_OUT_OF_BAND_REMOTE_ACCESS   SMBIOS_TYPE_OUT_OF_BAND_REMOTE_ACCESS
 
#define EFI_SMBIOS_TYPE_BOOT_INTEGRITY_SERVICE   SMBIOS_TYPE_BOOT_INTEGRITY_SERVICE
 
#define EFI_SMBIOS_TYPE_SYSTEM_BOOT_INFORMATION   SMBIOS_TYPE_SYSTEM_BOOT_INFORMATION
 
#define EFI_SMBIOS_TYPE_64BIT_MEMORY_ERROR_INFORMATION   SMBIOS_TYPE_64BIT_MEMORY_ERROR_INFORMATION
 
#define EFI_SMBIOS_TYPE_MANAGEMENT_DEVICE   SMBIOS_TYPE_MANAGEMENT_DEVICE
 
#define EFI_SMBIOS_TYPE_MANAGEMENT_DEVICE_COMPONENT   SMBIOS_TYPE_MANAGEMENT_DEVICE_COMPONENT
 
#define EFI_SMBIOS_TYPE_MANAGEMENT_DEVICE_THRESHOLD_DATA   SMBIOS_TYPE_MANAGEMENT_DEVICE_THRESHOLD_DATA
 
#define EFI_SMBIOS_TYPE_MEMORY_CHANNEL   SMBIOS_TYPE_MEMORY_CHANNEL
 
#define EFI_SMBIOS_TYPE_IPMI_DEVICE_INFORMATION   SMBIOS_TYPE_IPMI_DEVICE_INFORMATION
 
#define EFI_SMBIOS_TYPE_SYSTEM_POWER_SUPPLY   SMBIOS_TYPE_SYSTEM_POWER_SUPPLY
 
#define EFI_SMBIOS_TYPE_ADDITIONAL_INFORMATION   SMBIOS_TYPE_ADDITIONAL_INFORMATION
 
#define EFI_SMBIOS_TYPE_ONBOARD_DEVICES_EXTENDED_INFORMATION   SMBIOS_TYPE_ONBOARD_DEVICES_EXTENDED_INFORMATION
 
#define EFI_SMBIOS_TYPE_MANAGEMENT_CONTROLLER_HOST_INTERFACE   SMBIOS_TYPE_MANAGEMENT_CONTROLLER_HOST_INTERFACE
 
#define EFI_SMBIOS_TYPE_INACTIVE   SMBIOS_TYPE_INACTIVE
 
#define EFI_SMBIOS_TYPE_END_OF_TABLE   SMBIOS_TYPE_END_OF_TABLE
 
#define EFI_SMBIOS_OEM_BEGIN   SMBIOS_OEM_BEGIN
 
#define EFI_SMBIOS_OEM_END   SMBIOS_OEM_END
 

Typedefs

typedef SMBIOS_TABLE_STRING EFI_SMBIOS_STRING
 
typedef SMBIOS_TYPE EFI_SMBIOS_TYPE
 
typedef SMBIOS_HANDLE EFI_SMBIOS_HANDLE
 
typedef SMBIOS_STRUCTURE EFI_SMBIOS_TABLE_HEADER
 
typedef struct _EFI_SMBIOS_PROTOCOL EFI_SMBIOS_PROTOCOL
 
typedef EFI_STATUS(EFIAPI * EFI_SMBIOS_ADD) (IN CONST EFI_SMBIOS_PROTOCOL *This, IN EFI_HANDLE ProducerHandle OPTIONAL, IN OUT EFI_SMBIOS_HANDLE *SmbiosHandle, IN EFI_SMBIOS_TABLE_HEADER *Record)
 
typedef EFI_STATUS(EFIAPI * EFI_SMBIOS_UPDATE_STRING) (IN CONST EFI_SMBIOS_PROTOCOL *This, IN EFI_SMBIOS_HANDLE *SmbiosHandle, IN UINTN *StringNumber, IN CHAR8 *String)
 
typedef EFI_STATUS(EFIAPI * EFI_SMBIOS_REMOVE) (IN CONST EFI_SMBIOS_PROTOCOL *This, IN EFI_SMBIOS_HANDLE SmbiosHandle)
 
typedef EFI_STATUS(EFIAPI * EFI_SMBIOS_GET_NEXT) (IN CONST EFI_SMBIOS_PROTOCOL *This, IN OUT EFI_SMBIOS_HANDLE *SmbiosHandle, IN EFI_SMBIOS_TYPE *Type OPTIONAL, OUT EFI_SMBIOS_TABLE_HEADER **Record, OUT EFI_HANDLE *ProducerHandle OPTIONAL)
 

Variables

EFI_GUID gEfiSmbiosProtocolGuid
 

Detailed Description

SMBIOS Protocol as defined in PI1.2 Specification VOLUME 5 Standard.

SMBIOS protocol allows consumers to log SMBIOS data records, and enables the producer to create the SMBIOS tables for a platform.

This protocol provides an interface to add, remove or discover SMBIOS records. The driver which produces this protocol is responsible for creating the SMBIOS data tables and installing the pointer to the tables in the EFI System Configuration Table. The caller is responsible for only adding SMBIOS records that are valid for the SMBIOS MajorVersion and MinorVersion. When an enumerated SMBIOS field's values are controlled by the DMTF, new values can be used as soon as they are defined by the DMTF without requiring an update to MajorVersion and MinorVersion. The SMBIOS protocol can only be called a TPL < TPL_NOTIFY.

Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent

Definition in file Smbios.h.

Macro Definition Documentation

◆ EFI_SMBIOS_OEM_BEGIN

#define EFI_SMBIOS_OEM_BEGIN   SMBIOS_OEM_BEGIN

Definition at line 74 of file Smbios.h.

◆ EFI_SMBIOS_OEM_END

#define EFI_SMBIOS_OEM_END   SMBIOS_OEM_END

Definition at line 75 of file Smbios.h.

◆ EFI_SMBIOS_PROTOCOL_GUID

#define EFI_SMBIOS_PROTOCOL_GUID    { 0x3583ff6, 0xcb36, 0x4940, { 0x94, 0x7e, 0xb9, 0xb3, 0x9f, 0x4a, 0xfa, 0xf7 }}

Definition at line 26 of file Smbios.h.

◆ EFI_SMBIOS_TYPE_32BIT_MEMORY_ERROR_INFORMATION

#define EFI_SMBIOS_TYPE_32BIT_MEMORY_ERROR_INFORMATION   SMBIOS_TYPE_32BIT_MEMORY_ERROR_INFORMATION

Definition at line 47 of file Smbios.h.

◆ EFI_SMBIOS_TYPE_64BIT_MEMORY_ERROR_INFORMATION

#define EFI_SMBIOS_TYPE_64BIT_MEMORY_ERROR_INFORMATION   SMBIOS_TYPE_64BIT_MEMORY_ERROR_INFORMATION

Definition at line 62 of file Smbios.h.

◆ EFI_SMBIOS_TYPE_ADDITIONAL_INFORMATION

#define EFI_SMBIOS_TYPE_ADDITIONAL_INFORMATION   SMBIOS_TYPE_ADDITIONAL_INFORMATION

Definition at line 69 of file Smbios.h.

◆ EFI_SMBIOS_TYPE_BASEBOARD_INFORMATION

#define EFI_SMBIOS_TYPE_BASEBOARD_INFORMATION   SMBIOS_TYPE_BASEBOARD_INFORMATION

Definition at line 31 of file Smbios.h.

◆ EFI_SMBIOS_TYPE_BIOS_INFORMATION

#define EFI_SMBIOS_TYPE_BIOS_INFORMATION   SMBIOS_TYPE_BIOS_INFORMATION

Definition at line 29 of file Smbios.h.

◆ EFI_SMBIOS_TYPE_BIOS_LANGUAGE_INFORMATION

#define EFI_SMBIOS_TYPE_BIOS_LANGUAGE_INFORMATION   SMBIOS_TYPE_BIOS_LANGUAGE_INFORMATION

Definition at line 42 of file Smbios.h.

◆ EFI_SMBIOS_TYPE_BOOT_INTEGRITY_SERVICE

#define EFI_SMBIOS_TYPE_BOOT_INTEGRITY_SERVICE   SMBIOS_TYPE_BOOT_INTEGRITY_SERVICE

Definition at line 60 of file Smbios.h.

◆ EFI_SMBIOS_TYPE_BUILT_IN_POINTING_DEVICE

#define EFI_SMBIOS_TYPE_BUILT_IN_POINTING_DEVICE   SMBIOS_TYPE_BUILT_IN_POINTING_DEVICE

Definition at line 50 of file Smbios.h.

◆ EFI_SMBIOS_TYPE_CACHE_INFORMATION

#define EFI_SMBIOS_TYPE_CACHE_INFORMATION   SMBIOS_TYPE_CACHE_INFORMATION

Definition at line 36 of file Smbios.h.

◆ EFI_SMBIOS_TYPE_COOLING_DEVICE

#define EFI_SMBIOS_TYPE_COOLING_DEVICE   SMBIOS_TYPE_COOLING_DEVICE

Definition at line 56 of file Smbios.h.

◆ EFI_SMBIOS_TYPE_ELECTRICAL_CURRENT_PROBE

#define EFI_SMBIOS_TYPE_ELECTRICAL_CURRENT_PROBE   SMBIOS_TYPE_ELECTRICAL_CURRENT_PROBE

Definition at line 58 of file Smbios.h.

◆ EFI_SMBIOS_TYPE_END_OF_TABLE

#define EFI_SMBIOS_TYPE_END_OF_TABLE   SMBIOS_TYPE_END_OF_TABLE

Definition at line 73 of file Smbios.h.

◆ EFI_SMBIOS_TYPE_GROUP_ASSOCIATIONS

#define EFI_SMBIOS_TYPE_GROUP_ASSOCIATIONS   SMBIOS_TYPE_GROUP_ASSOCIATIONS

Definition at line 43 of file Smbios.h.

◆ EFI_SMBIOS_TYPE_HARDWARE_SECURITY

#define EFI_SMBIOS_TYPE_HARDWARE_SECURITY   SMBIOS_TYPE_HARDWARE_SECURITY

Definition at line 53 of file Smbios.h.

◆ EFI_SMBIOS_TYPE_INACTIVE

#define EFI_SMBIOS_TYPE_INACTIVE   SMBIOS_TYPE_INACTIVE

Definition at line 72 of file Smbios.h.

◆ EFI_SMBIOS_TYPE_IPMI_DEVICE_INFORMATION

#define EFI_SMBIOS_TYPE_IPMI_DEVICE_INFORMATION   SMBIOS_TYPE_IPMI_DEVICE_INFORMATION

Definition at line 67 of file Smbios.h.

◆ EFI_SMBIOS_TYPE_MANAGEMENT_CONTROLLER_HOST_INTERFACE

#define EFI_SMBIOS_TYPE_MANAGEMENT_CONTROLLER_HOST_INTERFACE   SMBIOS_TYPE_MANAGEMENT_CONTROLLER_HOST_INTERFACE

Definition at line 71 of file Smbios.h.

◆ EFI_SMBIOS_TYPE_MANAGEMENT_DEVICE

#define EFI_SMBIOS_TYPE_MANAGEMENT_DEVICE   SMBIOS_TYPE_MANAGEMENT_DEVICE

Definition at line 63 of file Smbios.h.

◆ EFI_SMBIOS_TYPE_MANAGEMENT_DEVICE_COMPONENT

#define EFI_SMBIOS_TYPE_MANAGEMENT_DEVICE_COMPONENT   SMBIOS_TYPE_MANAGEMENT_DEVICE_COMPONENT

Definition at line 64 of file Smbios.h.

◆ EFI_SMBIOS_TYPE_MANAGEMENT_DEVICE_THRESHOLD_DATA

#define EFI_SMBIOS_TYPE_MANAGEMENT_DEVICE_THRESHOLD_DATA   SMBIOS_TYPE_MANAGEMENT_DEVICE_THRESHOLD_DATA

Definition at line 65 of file Smbios.h.

◆ EFI_SMBIOS_TYPE_MEMORY_ARRAY_MAPPED_ADDRESS

#define EFI_SMBIOS_TYPE_MEMORY_ARRAY_MAPPED_ADDRESS   SMBIOS_TYPE_MEMORY_ARRAY_MAPPED_ADDRESS

Definition at line 48 of file Smbios.h.

◆ EFI_SMBIOS_TYPE_MEMORY_CHANNEL

#define EFI_SMBIOS_TYPE_MEMORY_CHANNEL   SMBIOS_TYPE_MEMORY_CHANNEL

Definition at line 66 of file Smbios.h.

◆ EFI_SMBIOS_TYPE_MEMORY_CONTROLLER_INFORMATION

#define EFI_SMBIOS_TYPE_MEMORY_CONTROLLER_INFORMATION   SMBIOS_TYPE_MEMORY_CONTROLLER_INFORMATION

Definition at line 34 of file Smbios.h.

◆ EFI_SMBIOS_TYPE_MEMORY_DEVICE

#define EFI_SMBIOS_TYPE_MEMORY_DEVICE   SMBIOS_TYPE_MEMORY_DEVICE

Definition at line 46 of file Smbios.h.

◆ EFI_SMBIOS_TYPE_MEMORY_DEVICE_MAPPED_ADDRESS

#define EFI_SMBIOS_TYPE_MEMORY_DEVICE_MAPPED_ADDRESS   SMBIOS_TYPE_MEMORY_DEVICE_MAPPED_ADDRESS

Definition at line 49 of file Smbios.h.

◆ EFI_SMBIOS_TYPE_MEMORY_MODULE_INFORMATON

#define EFI_SMBIOS_TYPE_MEMORY_MODULE_INFORMATON   SMBIOS_TYPE_MEMORY_MODULE_INFORMATON

Definition at line 35 of file Smbios.h.

◆ EFI_SMBIOS_TYPE_OEM_STRINGS

#define EFI_SMBIOS_TYPE_OEM_STRINGS   SMBIOS_TYPE_OEM_STRINGS

Definition at line 40 of file Smbios.h.

◆ EFI_SMBIOS_TYPE_ONBOARD_DEVICE_INFORMATION

#define EFI_SMBIOS_TYPE_ONBOARD_DEVICE_INFORMATION   SMBIOS_TYPE_ONBOARD_DEVICE_INFORMATION

Definition at line 39 of file Smbios.h.

◆ EFI_SMBIOS_TYPE_ONBOARD_DEVICES_EXTENDED_INFORMATION

#define EFI_SMBIOS_TYPE_ONBOARD_DEVICES_EXTENDED_INFORMATION   SMBIOS_TYPE_ONBOARD_DEVICES_EXTENDED_INFORMATION

Definition at line 70 of file Smbios.h.

◆ EFI_SMBIOS_TYPE_OUT_OF_BAND_REMOTE_ACCESS

#define EFI_SMBIOS_TYPE_OUT_OF_BAND_REMOTE_ACCESS   SMBIOS_TYPE_OUT_OF_BAND_REMOTE_ACCESS

Definition at line 59 of file Smbios.h.

◆ EFI_SMBIOS_TYPE_PHYSICAL_MEMORY_ARRAY

#define EFI_SMBIOS_TYPE_PHYSICAL_MEMORY_ARRAY   SMBIOS_TYPE_PHYSICAL_MEMORY_ARRAY

Definition at line 45 of file Smbios.h.

◆ EFI_SMBIOS_TYPE_PORT_CONNECTOR_INFORMATION

#define EFI_SMBIOS_TYPE_PORT_CONNECTOR_INFORMATION   SMBIOS_TYPE_PORT_CONNECTOR_INFORMATION

Definition at line 37 of file Smbios.h.

◆ EFI_SMBIOS_TYPE_PORTABLE_BATTERY

#define EFI_SMBIOS_TYPE_PORTABLE_BATTERY   SMBIOS_TYPE_PORTABLE_BATTERY

Definition at line 51 of file Smbios.h.

◆ EFI_SMBIOS_TYPE_PROCESSOR_INFORMATION

#define EFI_SMBIOS_TYPE_PROCESSOR_INFORMATION   SMBIOS_TYPE_PROCESSOR_INFORMATION

Definition at line 33 of file Smbios.h.

◆ EFI_SMBIOS_TYPE_SYSTEM_BOOT_INFORMATION

#define EFI_SMBIOS_TYPE_SYSTEM_BOOT_INFORMATION   SMBIOS_TYPE_SYSTEM_BOOT_INFORMATION

Definition at line 61 of file Smbios.h.

◆ EFI_SMBIOS_TYPE_SYSTEM_CONFIGURATION_OPTIONS

#define EFI_SMBIOS_TYPE_SYSTEM_CONFIGURATION_OPTIONS   SMBIOS_TYPE_SYSTEM_CONFIGURATION_OPTIONS

Definition at line 41 of file Smbios.h.

◆ EFI_SMBIOS_TYPE_SYSTEM_ENCLOSURE

#define EFI_SMBIOS_TYPE_SYSTEM_ENCLOSURE   SMBIOS_TYPE_SYSTEM_ENCLOSURE

Definition at line 32 of file Smbios.h.

◆ EFI_SMBIOS_TYPE_SYSTEM_EVENT_LOG

#define EFI_SMBIOS_TYPE_SYSTEM_EVENT_LOG   SMBIOS_TYPE_SYSTEM_EVENT_LOG

Definition at line 44 of file Smbios.h.

◆ EFI_SMBIOS_TYPE_SYSTEM_INFORMATION

#define EFI_SMBIOS_TYPE_SYSTEM_INFORMATION   SMBIOS_TYPE_SYSTEM_INFORMATION

Definition at line 30 of file Smbios.h.

◆ EFI_SMBIOS_TYPE_SYSTEM_POWER_CONTROLS

#define EFI_SMBIOS_TYPE_SYSTEM_POWER_CONTROLS   SMBIOS_TYPE_SYSTEM_POWER_CONTROLS

Definition at line 54 of file Smbios.h.

◆ EFI_SMBIOS_TYPE_SYSTEM_POWER_SUPPLY

#define EFI_SMBIOS_TYPE_SYSTEM_POWER_SUPPLY   SMBIOS_TYPE_SYSTEM_POWER_SUPPLY

Definition at line 68 of file Smbios.h.

◆ EFI_SMBIOS_TYPE_SYSTEM_RESET

#define EFI_SMBIOS_TYPE_SYSTEM_RESET   SMBIOS_TYPE_SYSTEM_RESET

Definition at line 52 of file Smbios.h.

◆ EFI_SMBIOS_TYPE_SYSTEM_SLOTS

#define EFI_SMBIOS_TYPE_SYSTEM_SLOTS   SMBIOS_TYPE_SYSTEM_SLOTS

Definition at line 38 of file Smbios.h.

◆ EFI_SMBIOS_TYPE_TEMPERATURE_PROBE

#define EFI_SMBIOS_TYPE_TEMPERATURE_PROBE   SMBIOS_TYPE_TEMPERATURE_PROBE

Definition at line 57 of file Smbios.h.

◆ EFI_SMBIOS_TYPE_VOLTAGE_PROBE

#define EFI_SMBIOS_TYPE_VOLTAGE_PROBE   SMBIOS_TYPE_VOLTAGE_PROBE

Definition at line 55 of file Smbios.h.

Typedef Documentation

◆ EFI_SMBIOS_ADD

typedef EFI_STATUS(EFIAPI * EFI_SMBIOS_ADD) (IN CONST EFI_SMBIOS_PROTOCOL *This, IN EFI_HANDLE ProducerHandle OPTIONAL, IN OUT EFI_SMBIOS_HANDLE *SmbiosHandle, IN EFI_SMBIOS_TABLE_HEADER *Record)

Add an SMBIOS record.

This function allows any agent to add SMBIOS records. The caller is responsible for ensuring Record is formatted in a way that matches the version of the SMBIOS specification as defined in the MajorRevision and MinorRevision fields of the EFI_SMBIOS_PROTOCOL. Record must follow the SMBIOS structure evolution and usage guidelines in the SMBIOS specification. Record starts with the formatted area of the SMBIOS structure and the length is defined by EFI_SMBIOS_TABLE_HEADER.Length. Each SMBIOS structure is terminated by a double-null (0x0000), either directly following the formatted area (if no strings are present) or directly following the last string. The number of optional strings is not defined by the formatted area, but is fixed by the call to Add(). A string can be a place holder, but it must not be a NULL string as two NULL strings look like the double-null that terminates the structure.

Parameters
[in]ThisThe EFI_SMBIOS_PROTOCOL instance.
[in]ProducerHandleThe handle of the controller or driver associated with the SMBIOS information. NULL means no handle.
[in,out]SmbiosHandleOn entry, the handle of the SMBIOS record to add. If FFFEh, then a unique handle will be assigned to the SMBIOS record. If the SMBIOS handle is already in use, EFI_ALREADY_STARTED is returned and the SMBIOS record is not updated.
[in]RecordThe data for the fixed portion of the SMBIOS record. The format of the record is determined by EFI_SMBIOS_TABLE_HEADER.Type. The size of the formatted area is defined by EFI_SMBIOS_TABLE_HEADER.Length and either followed by a double-null (0x0000) or a set of null terminated strings and a null.
Return values
EFI_SUCCESSRecord was added.
EFI_OUT_OF_RESOURCESRecord was not added.
EFI_ALREADY_STARTEDThe SmbiosHandle passed in was already in use.

Definition at line 113 of file Smbios.h.

◆ EFI_SMBIOS_GET_NEXT

typedef EFI_STATUS(EFIAPI * EFI_SMBIOS_GET_NEXT) (IN CONST EFI_SMBIOS_PROTOCOL *This, IN OUT EFI_SMBIOS_HANDLE *SmbiosHandle, IN EFI_SMBIOS_TYPE *Type OPTIONAL, OUT EFI_SMBIOS_TABLE_HEADER **Record, OUT EFI_HANDLE *ProducerHandle OPTIONAL)

Allow the caller to discover all or some of the SMBIOS records.

This function allows all of the SMBIOS records to be discovered. It's possible to find only the SMBIOS records that match the optional Type argument.

Parameters
[in]ThisThe EFI_SMBIOS_PROTOCOL instance.
[in,out]SmbiosHandleOn entry, points to the previous handle of the SMBIOS record. On exit, points to the next SMBIOS record handle. If it is FFFEh on entry, then the first SMBIOS record handle will be returned. If it returns FFFEh on exit, then there are no more SMBIOS records.
[in]TypeOn entry, it points to the type of the next SMBIOS record to return. If NULL, it indicates that the next record of any type will be returned. Type is not modified by the this function.
[out]RecordOn exit, points to a pointer to the the SMBIOS Record consisting of the formatted area followed by the unformatted area. The unformatted area optionally contains text strings.
[out]ProducerHandleOn exit, points to the ProducerHandle registered by Add(). If no ProducerHandle was passed into Add() NULL is returned. If a NULL pointer is passed in no data will be returned.
Return values
EFI_SUCCESSSMBIOS record information was successfully returned in Record. SmbiosHandle is the handle of the current SMBIOS record
EFI_NOT_FOUNDThe SMBIOS record with SmbiosHandle was the last available record.

Definition at line 187 of file Smbios.h.

◆ EFI_SMBIOS_HANDLE

typedef SMBIOS_HANDLE EFI_SMBIOS_HANDLE

Definition at line 79 of file Smbios.h.

◆ EFI_SMBIOS_PROTOCOL

Definition at line 82 of file Smbios.h.

◆ EFI_SMBIOS_REMOVE

typedef EFI_STATUS(EFIAPI * EFI_SMBIOS_REMOVE) (IN CONST EFI_SMBIOS_PROTOCOL *This, IN EFI_SMBIOS_HANDLE SmbiosHandle)

Remove an SMBIOS record.

This function removes an SMBIOS record using the handle specified by SmbiosHandle.

Parameters
[in]ThisThe EFI_SMBIOS_PROTOCOL instance.
[in]SmbiosHandleThe handle of the SMBIOS record to remove.
Return values
EFI_SUCCESSSMBIOS record was removed.
EFI_INVALID_PARAMETERSmbiosHandle does not specify a valid SMBIOS record.

Definition at line 158 of file Smbios.h.

◆ EFI_SMBIOS_STRING

typedef SMBIOS_TABLE_STRING EFI_SMBIOS_STRING

Definition at line 77 of file Smbios.h.

◆ EFI_SMBIOS_TABLE_HEADER

Definition at line 80 of file Smbios.h.

◆ EFI_SMBIOS_TYPE

typedef SMBIOS_TYPE EFI_SMBIOS_TYPE

Definition at line 78 of file Smbios.h.

◆ EFI_SMBIOS_UPDATE_STRING

typedef EFI_STATUS(EFIAPI * EFI_SMBIOS_UPDATE_STRING) (IN CONST EFI_SMBIOS_PROTOCOL *This, IN EFI_SMBIOS_HANDLE *SmbiosHandle, IN UINTN *StringNumber, IN CHAR8 *String)

Update the string associated with an existing SMBIOS record.

This function allows the update of specific SMBIOS strings. The number of valid strings for any SMBIOS record is defined by how many strings were present when Add() was called.

Parameters
[in]ThisThe EFI_SMBIOS_PROTOCOL instance.
[in]SmbiosHandleSMBIOS Handle of structure that will have its string updated.
[in]StringNumberThe non-zero string number of the string to update.
[in]StringUpdate the StringNumber string with String.
Return values
EFI_SUCCESSSmbiosHandle had its StringNumber String updated.
EFI_INVALID_PARAMETERSmbiosHandle does not exist.
EFI_UNSUPPORTEDString was not added because it is longer than the SMBIOS Table supports.
EFI_NOT_FOUNDThe StringNumber.is not valid for this SMBIOS record.

Definition at line 138 of file Smbios.h.