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。 可能的返回值包括以下错误代码。
返回代码 | 说明 |
---|---|
|
向例程提供的参数无效。 |
|
调用方分配的缓冲区太小,但所需的缓冲区大小已写入 ReturnLength 输出参数。 |
注解
如果调用成功,此例程会将一个或多个表标识符的数组写入 FirmwareTableBuffer 参数指向的缓冲区。 此数组的每个元素都是一个 DWORD 值,该值标识从 FirmwareTableProviderSignature 参数指定的提供程序提供的固件表。
原始 SMBIOS 表提供程序 ('RSMB') 当前返回单个表标识符,0x00000000。 这对应于原始 SMBIOS 固件表。
原始固件表提供程序 ('FIRM') 检索 DWORD 表标识符的列表。 每个标识符对应于物理地址范围的开头。 目前,此提供程序返回两个标识符,0x000C0000和0x000E0000。 这些标识符分别表示从0x000C0000到0x000DFFFF和从0x000E0000到0x000FFFFF的物理内存。
ACPI 表提供程序 ('ACPI') 返回 DWORD 表标识符的列表。 返回的每个标识符对应于当前位于系统的 ACPI 命名空间中的 ACPI 表DESCRIPTION_HEADER结构的签名字段。 有关此结构的详细信息,请参阅高级配置和电源接口网站上的 高级配置和电源接口 规范。
对于 ACPI,如果系统固件包含多个具有相同名称的表, 则 AuxKlibEnumerateSystemFirmwareTables 将全部枚举它们。 但是, AuxKlibGetSystemFirmwareTable 仅检索列表中具有此名称的第一个表。
AuxKlibEnumerateSystemFirmwareTables 是 Win32 EnumSystemFirmwareTables 函数的内核模式等效项。
在调用 AuxKlibEnumerateSystemFirmwareTable 之前,驱动程序必须调用 AuxKlibInitialize。
AuxKlibEnumerateSystemFirmwareTables 在 Aux_klib.h 头文件中定义,该文件包含在 WDK for Windows 8 及更高版本的 Windows 中。 若要使用此例程,驱动程序应链接到 WDK for Windows 8 及更高版本的 Windows 中包含的 Aux_klib.lib 版本。 在这些版本的 WDK 中实现 AuxKlibEnumerateSystemFirmwareTables 可以在从 Windows Vista 开始的 Windows 版本中使用。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | 从 Windows Vista 开始受支持。 |
目标平台 | 通用 |
标头 | aux_klib.h (包括 Aux_klib.h) |
Library | Aux_Klib.lib |
IRQL | PASSIVE_LEVEL |