Compartir a través de


Función AuxKlibEnumerateSystemFirmwareTables (aux_klib.h)

La rutina AuxKlibEnumerateSystemFirmwareTables enumera todas las tablas de firmware del sistema del tipo especificado.

Sintaxis

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

Parámetros

[in] FirmwareTableProviderSignature

Identificador del proveedor de tabla de firmware al que se dirige la consulta. Este parámetro puede ser uno de los valores siguientes.

Valor Significado
'ACPI' Proveedor de tabla de firmware ACPI.
'FIRM' Proveedor de tabla de firmware sin formato.
"RSMB" Proveedor de tabla de firmware SMBIOS sin formato.

[out, optional] FirmwareTableBuffer

Puntero a un búfer asignado por el autor de la llamada en el que la rutina escribe la lista de tablas de firmware. Si este parámetro es NULL, el valor escrito en *ReturnLength es el tamaño de búfer necesario. Para obtener más información sobre el contenido de este búfer, vea la sección Comentarios.

[in] BufferLength

Tamaño, en bytes, del búfer al que apunta FirmwareTableBuffer.

[out, optional] ReturnLength

Puntero a una ubicación a la que la rutina escribe el número de bytes de datos escritos en el búfer al que apunta FirmwareTableBuffer.

Valor devuelto

AuxKlibEnumerateSystemFirmwareTables devuelve STATUS_SUCCESS si la llamada se realiza correctamente. Entre los posibles valores devueltos se incluyen los siguientes códigos de error.

Código devuelto Descripción
STATUS_INVALID_PARAMETER
Se proporcionó un parámetro no válido a la rutina.
STATUS_BUFFER_TOO_SMALL
El búfer asignado por el autor de la llamada es demasiado pequeño, pero el tamaño de búfer necesario se ha escrito en el parámetro de salida ReturnLength .

Comentarios

Si la llamada se realiza correctamente, esta rutina escribe una matriz de uno o varios identificadores de tabla en el búfer al que apunta el parámetro FirmwareTableBuffer . Cada elemento de esta matriz es un valor DWORD que identifica una tabla de firmware que está disponible en el proveedor especificado por el parámetro FirmwareTableProviderSignature .

El proveedor de tablas SMBIOS sin formato ("RSMB") actualmente devuelve un único identificador de tabla, 0x00000000. Esto corresponde a la tabla de firmware SMBIOS sin procesar.

El proveedor de tabla de firmware sin formato ("FIRM") recupera una lista de identificadores de tabla DWORD. Cada identificador corresponde al principio de un intervalo de direcciones físico. Actualmente, este proveedor devuelve dos identificadores, 0x000C0000 y 0x000E0000. Estos identificadores representan la memoria física de 0x000C0000 a 0x000DFFFF y de 0x000E0000 a 0x000FFFFF, respectivamente.

El proveedor de tablas ACPI ("ACPI") devuelve una lista de identificadores de tabla DWORD. Cada identificador devuelto corresponde al campo Firma de la estructura DESCRIPTION_HEADER de una tabla ACPI actualmente en el espacio de nombres ACPI del sistema. Para obtener más información sobre esta estructura, vea Advanced Configuration and Power Interface Specification en el sitio web de Advanced Configuration and Power Interface .

Para ACPI, si el firmware del sistema contiene varias tablas con el mismo nombre, AuxKlibEnumerateSystemFirmwareTables las enumera todas. Sin embargo, AuxKlibGetSystemFirmwareTable recupera solo la primera tabla de la lista que tiene este nombre.

AuxKlibEnumerateSystemFirmwareTables es el equivalente en modo kernel de la función EnumSystemFirmwareTables de Win32.

Los controladores deben llamar a AuxKlibInitialize antes de llamar a AuxKlibEnumerateSystemFirmwareTable.

AuxKlibEnumerateSystemFirmwareTables se define en el archivo de encabezado Aux_klib.h que se incluye en el WDK para Windows 8 y versiones posteriores de Windows. Para usar esta rutina, los controladores deben vincularse a la versión de Aux_klib.lib que se incluye en el WDK para Windows 8 y versiones posteriores de Windows. La implementación de AuxKlibEnumerateSystemFirmwareTables en estas versiones del WDK se puede usar en versiones de Windows a partir de Windows Vista.

Requisitos

Requisito Value
Cliente mínimo compatible Se admite a partir de Windows Vista.
Plataforma de destino Universal
Encabezado aux_klib.h (incluya Aux_klib.h)
Library Aux_Klib.lib
IRQL PASSIVE_LEVEL

Consulte también

AuxKlibGetSystemFirmwareTable

AuxKlibInitialize

EnumSystemFirmwareTables