ReadSystemFirmwareTable function

Reads the system firmware table. All input parameters are supplied by the display miniport driver.

Syntax


NTSTATUS ReadSystemFirmwareTable(
  _In_       VOID *Context,
  _In_       ULONG ProviderSignature,
  _In_       ULONG TableId,
  _In_       ULONG BufferSize,
  _Out_opt_  VOID *Buffer,
  _Out_      ULONG *RequiredSize
);

Parameters

Context [in]

A handle to a context block that is associated with a display adapter. The display miniport driver's DxgkDdiAddDevice function previously provided this handle to the DirectX graphics kernel subsystem.

ProviderSignature [in]

The identifier of the firmware table provider to which the query is to be directed. This parameter can be one of the following values.

ValueMeaning
'ACPI'

The ACPI firmware table provider.

'FIRM'

The raw firmware table provider.

'RSMB'

The raw SMBIOS firmware table provider.

 

TableId [in]

The identifier of the firmware table. This identifier is in little-endian format, so you must reverse the characters in the string. For example, FACP is an ACPI provider, as described in the Signature member of the DESCRIPTION_HEADER structure in the ACPI specification (see http://www.acpi.info). Therefore, use 'PCAF' to specify the FACP table, as shown in the following example:


retVal = ReadSystemFirmwareTable('ACPI', 'PCAF', pBuffer, BUFSIZE);

BufferSize [in]

The size of the buffer pointed to by the Buffer parameter, in bytes.

Buffer [out, optional]

An optional pointer to a buffer that receives the requested firmware table. If this parameter is NULL, the return value is the required buffer size. For more information on the contents of this buffer, see the Remarks section.

RequiredSize [out]

A pointer to a value that receives the minimum size of the buffer pointed to by Buffer, in bytes, that the operating system needs to process the read request.

Return value

Returns STATUS_SUCCESS if it succeeds. Otherwise, it returns one of the error codes defined in Ntstatus.h.

Remarks

The raw SMBIOS table provider ('RSMB') retrieves the contents of the raw SMBIOS firmware table. The buffer pointed to by the Buffer parameter receives the following data:


#include <windows.h>

struct RawSMBIOSData
{
    BYTE    Used20CallingMethod;
    BYTE    SMBIOSMajorVersion;
    BYTE    SMBIOSMinorVersion;
    BYTE    DmiRevision;
    DWORD    Length;
    BYTE    SMBIOSTableData[];
};


The raw firmware table provider ('FIRM') retrieves the contents of the specified physical address range. ReadSystemFirmwareTable returns the size of the address range.

The ACPI table provider ('ACPI') retrieves the contents of the specified ACPI table. Because OEMs can include ACPI firmware tables that are not listed in the ACPI specification, you should first call the EnumSystemFirmwareTables function to enumerate all ACPI tables that are currently on the system.

For ACPI, if the system contains multiple tables with the same name, they are all enumerated with EnumSystemFirmwareTables. However, ReadSystemFirmwareTable retrieves only the first table in the list with this name.

Requirements

Minimum supported client

Windows 8

Minimum supported server

Windows Server 2012

Header

Dispmprt.h (include Dispmprt.h)

IRQL

PASSIVE_LEVEL

See also

DXGK_FIRMWARE_TABLE_INTERFACE

 

 

Send comments about this topic to Microsoft

顯示:
© 2014 Microsoft