Compartir a través de


Función AuxKlibEnumerateSystemFirmwareTables (aux_klib.h)

El AuxKlibEnumerateSystemFirmwareTables rutina 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 dirigirá la consulta. Este parámetro puede ser uno de los siguientes valores.

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

[out, optional] FirmwareTableBuffer

Puntero a un búfer asignado por el autor de la llamada al 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. Los valores devueltos posibles 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.

Observaciones

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 procesar ("RSMB") devuelve actualmente un identificador de tabla único, 0x00000000. Esto corresponde a la tabla de firmware SMBIOS sin procesar.

El proveedor de tabla de firmware sin procesar ("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 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 a campo firma de la estructura de DESCRIPTION_HEADER para una tabla ACPI actualmente en el espacio de nombres ACPI del sistema. Para obtener más información sobre esta estructura, consulte 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 enumera todas ellas. 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 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 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 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 Valor
cliente mínimo admitido Se admite a partir de Windows Vista.
de la plataforma de destino de Universal
encabezado de aux_klib.h (incluya Aux_klib.h)
biblioteca de Aux_Klib.lib
irQL PASSIVE_LEVEL

Consulte también

AuxKlibGetSystemFirmwareTable

AuxKlibInitialize

EnumSystemFirmwareTables