Función AuxKlibGetSystemFirmwareTable (aux_klib.h)
La rutina AuxKlibGetSystemFirmwareTable recupera la tabla de firmware especificada del proveedor de tablas de firmware.
Sintaxis
NTSTATUS AuxKlibGetSystemFirmwareTable(
[in] ULONG FirmwareTableProviderSignature,
[in] ULONG FirmwareTableID,
[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. |
[in] FirmwareTableID
Identificador de la tabla de firmware. Los caracteres del identificador están en orden little-endian.
Por ejemplo, FACP es el nombre de una tabla proporcionada por ACPI. La tabla FACP se identifica mediante el valor de 4 bytes "PCAF" (0x50434146) en el campo firma de de la estructura de DESCRIPTION_HEADER al principio de la tabla. En el ejemplo de código siguiente se muestra cómo especificar FACP en un llamada AuxKlibGetSystemFirmwareTable:
status = AuxKlibGetSystemFirmwareTable('ACPI', 'PCAF', pBuffer, BUFSIZE, &dataSize);
En este ejemplo, pBuffer
apunta al búfer asignado por el autor de la llamada, BUFSIZE
es el tamaño en bytes de este búfer y dataSize
es una variable a la que la rutina escribe el número de bytes escritos en el búfer. Para obtener más información sobre la estructura de DESCRIPTION_HEADER, consulte la Especificación avanzada de configuración e interfaz de energía en el sitio web de Configuración avanzada e Interfaz de energía.
[out, optional] FirmwareTableBuffer
Puntero a un búfer asignado por el autor de la llamada que recibe 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
AuxKlibGetSystemFirmwareTable 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 |
---|---|
|
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. |
Observaciones
El proveedor de tablas SMBIOS sin procesar ("RSMB") recupera el contenido de la tabla de firmware SMBIOS sin procesar. Los datos escritos en el búfer FirmwareTableBuffer comienzan con la estructura siguiente:
struct RawSMBIOSData
{
BYTE Used20CallingMethod;
BYTE SMBIOSMajorVersion;
BYTE SMBIOSMinorVersion;
BYTE DmiRevision;
DWORD Length;
BYTE SMBIOSTableData[];
};
El proveedor de tabla de firmware sin procesar ("FIRM") recupera el contenido del intervalo de direcciones físicos especificado. El valor escrito en *returnLength es el tamaño del intervalo de direcciones.
El proveedor de tabla ACPI ("ACPI") recupera el contenido de la tabla ACPI especificada. Dado que los OEM pueden incluir tablas de firmware ACPI que no aparecen en la especificación ACPI, primero debe llamar a AuxKlibEnumerateSystemFirmwareTables para enumerar todas las tablas ACPI que están disponibles actualmente desde el firmware del sistema.
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.
AuxKlibGetSystemFirmwareTable es el equivalente en modo kernel de la función GetSystemFirmwareTable Win32.
Los controladores deben llamar a AuxKlibInitialize antes de llamar a AuxKlibGetSystemFirmwareTable.
AuxKlibGetSystemFirmwareTable 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 AuxKlibGetSystemFirmwareTable 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 |