AuxKlibEnumerateSystemFirmwareTables 函数 (aux_klib.h)

AuxKlibEnumerateSystemFirmwareTables 例程枚举指定类型的所有系统固件表。

语法

NTSTATUS AuxKlibEnumerateSystemFirmwareTables(
  [in]            ULONG  FirmwareTableProviderSignature,
  [out, optional] PVOID  FirmwareTableBuffer,
  [in]            ULONG  BufferLength,
  [out, optional] PULONG ReturnLength
);

参数

[in] FirmwareTableProviderSignature

要向其定向查询的固件表提供程序的标识符。 此参数可以是下列值之一。

价值 意义
“ACPI” ACPI 固件表提供程序。
“FIRM” 原始固件表提供程序。
“RSMB” 原始 SMBIOS 固件表提供程序。

[out, optional] FirmwareTableBuffer

指向调用方分配的缓冲区的指针,该缓冲区将例程写入固件表的列表。 如果此参数为 NULL,则写入 *ReturnLength 的值是所需的缓冲区大小。 有关此缓冲区内容的详细信息,请参阅“备注”部分。

[in] BufferLength

FirmwareTableBuffer指向的缓冲区的大小(以字节为单位)。

[out, optional] ReturnLength

指向例程写入到 FirmwareTableBuffer指向的缓冲区的数据字节数的位置的指针。

返回值

如果调用成功,AuxKlibEnumerateSystemFirmwareTables 返回STATUS_SUCCESS。 可能的返回值包括以下错误代码。

返回代码 描述
STATUS_INVALID_PARAMETER
向例程提供了无效参数。
STATUS_BUFFER_TOO_SMALL
调用方分配的缓冲区太小,但所需的缓冲区大小已写入 ReturnLength 输出参数。

言论

如果调用成功,此例程会将一个或多个表标识符的数组写入 FirmwareTableBuffer 参数指向的缓冲区。 此数组的每个元素都是一个 DWORD 值,用于标识由 FirmwareTableProviderSignature 参数指定的提供程序提供的固件表。

原始 SMBIOS 表提供程序(“RSMB”)当前返回单个表标识符,0x00000000。 这对应于原始 SMBIOS 固件表。

原始固件表提供程序 ('FIRM') 检索 DWORD 表标识符的列表。 每个标识符对应于物理地址范围的开头。 目前,此提供程序返回两个标识符,0x000C0000和0x000E0000。 这些标识符分别表示从0x000C0000到0x000DFFFF的物理内存,以及从0x000E0000到0x000FFFFF的物理内存。

ACPI 表提供程序('ACPI')返回 DWORD 表标识符的列表。 返回的每个标识符对应于系统 ACPI 命名空间中当前 ACPI 命名空间中 ACPI 表 DESCRIPTION_HEADER 结构的 签名 字段。 有关此结构的详细信息,请参阅 高级配置和 Power Interface 网站上的高级配置和 Power Interface 规范。

对于 ACPI,如果系统固件包含多个具有相同名称的表,AuxKlibEnumerateSystemFirmwareTables 枚举它们。 但是,AuxKlibGetSystemFirmwareTable 仅检索列表中具有此名称的第一个表。

AuxKlibEnumerateSystemFirmwareTables 是 Win32 EnumSystemFirmwareTables 函数的内核模式等效项。

驱动程序必须在调用 AuxKlibEnumerateSystemFirmwareTable之前调用 AuxKlibInitialize

AuxKlibEnumerateSystemFirmwareTables 在适用于 Windows 8 及更高版本的 WDK 中包含的 Aux_klib.h 头文件中定义。 若要使用此例程,驱动程序应链接到适用于 Windows 8 和更高版本的 Windows 的 WDK 中包含的 Aux_klib.lib 版本。 AuxKlibEnumerateSystemFirmwareTables 这些版本的 WDK 的实现可用于从 Windows Vista 开始的 Windows 版本中。

要求

要求 价值
最低支持的客户端 从 Windows Vista 开始支持。
目标平台 普遍
标头 aux_klib.h (include Aux_klib.h)
Aux_Klib.lib
IRQL PASSIVE_LEVEL

另请参阅

AuxKlibGetSystemFirmwareTable

AuxKlibInitialize

EnumSystemFirmwareTables