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 |
---|---|
|
Se proporcionó un parámetro no válido a la rutina. |
|
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 |