Partager via


AuxKlibGetSystemFirmwareTable, fonction (aux_klib.h)

La routine AuxKlibGetSystemFirmwareTable récupère la table de microprogramme spécifiée à partir du fournisseur de table de microprogrammes.

Syntaxe

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

Paramètres

[in] FirmwareTableProviderSignature

Identificateur du fournisseur de table de microprogramme vers lequel la requête doit être dirigée. Ce paramètre peut prendre les valeurs suivantes.

Valeur Signification
'ACPI' Fournisseur de table de microprogramme ACPI.
'FIRM' Fournisseur de table de microprogrammes brut.
'RSMB' Fournisseur de table de microprogrammes SMBIOS brut.

[in] FirmwareTableID

Identificateur de la table de microprogramme. Les caractères de l’identificateur sont dans l’ordre little-endian.

Par exemple, FACP est le nom d’une table fournie par ACPI. La table FACP est identifiée par la valeur de 4 octets « PCAF » (0x50434146) dans le champ Signature de la structure DESCRIPTION_HEADER au début de la table. L’exemple de code suivant montre comment spécifier FACP dans un appel AuxKlibGetSystemFirmwareTable :

status = AuxKlibGetSystemFirmwareTable('ACPI', 'PCAF', pBuffer, BUFSIZE, &dataSize);

Dans cet exemple, pBuffer pointe vers la mémoire tampon allouée à l’appelant, BUFSIZE est la taille en octets de cette mémoire tampon et dataSize est une variable dans laquelle la routine écrit le nombre d’octets écrits dans la mémoire tampon. Pour plus d’informations sur la structure DESCRIPTION_HEADER , consultez configuration avancée et spécification de l’interface d’alimentation sur le site web Configuration avancée et interface d’alimentation .

[out, optional] FirmwareTableBuffer

Pointeur vers une mémoire tampon allouée à l’appelant qui reçoit la liste des tables de microprogramme. Si ce paramètre a la valeur NULL, la valeur écrite dans *ReturnLength est la taille de mémoire tampon requise. Pour plus d’informations sur le contenu de cette mémoire tampon, consultez la section Remarques.

[in] BufferLength

Taille, en octets, de la mémoire tampon pointée par FirmwareTableBuffer.

[out, optional] ReturnLength

Pointeur vers un emplacement dans lequel la routine écrit le nombre d’octets de données écrites dans la mémoire tampon pointée par FirmwareTableBuffer.

Valeur retournée

AuxKlibGetSystemFirmwareTable retourne STATUS_SUCCESS si l’appel réussit. Les valeurs de retour possibles incluent les codes d’erreur suivants.

Code de retour Description
STATUS_INVALID_PARAMETER
Un paramètre non valide a été fourni à la routine.
STATUS_BUFFER_TOO_SMALL
La mémoire tampon allouée à l’appelant est trop petite, mais la taille de mémoire tampon requise a été écrite dans le paramètre de sortie ReturnLength .

Remarques

Le fournisseur de table SMBIOS brute (« RSMB ») récupère le contenu de la table de microprogramme SMBIOS brute. Les données écrites dans la mémoire tampon FirmwareTableBuffer commencent par la structure suivante :

struct RawSMBIOSData
{
  BYTE  Used20CallingMethod;
  BYTE  SMBIOSMajorVersion;
  BYTE  SMBIOSMinorVersion;
  BYTE  DmiRevision;
  DWORD  Length;
  BYTE  SMBIOSTableData[];
};

Le fournisseur de table de microprogrammes brute (« FIRM ») récupère le contenu de la plage d’adresses physiques spécifiée. La valeur écrite dans *ReturnLength est la taille de la plage d’adresses.

Le fournisseur de table ACPI (« ACPI ») récupère le contenu de la table ACPI spécifiée. Étant donné que les fabricants OEM peuvent inclure des tables de microprogramme ACPI qui ne sont pas répertoriées dans la spécification ACPI, vous devez d’abord appeler AuxKlibEnumerateSystemFirmwareTables pour énumérer toutes les tables ACPI actuellement disponibles à partir du microprogramme système.

Pour ACPI, si le microprogramme système contient plusieurs tables portant le même nom, AuxKlibEnumerateSystemFirmwareTables les énumère toutes. Toutefois, AuxKlibGetSystemFirmwareTable récupère uniquement la première table de la liste qui porte ce nom.

AuxKlibGetSystemFirmwareTable est l’équivalent en mode noyau de la fonction Win32 GetSystemFirmwareTable .

Les pilotes doivent appeler AuxKlibInitialize avant d’appeler AuxKlibGetSystemFirmwareTable.

AuxKlibGetSystemFirmwareTable est défini dans le fichier d’en-tête Aux_klib.h inclus dans le WDK pour les versions Windows 8 et ultérieures de Windows. Pour utiliser cette routine, les pilotes doivent être liés à la version de Aux_klib.lib incluse dans WDK pour Windows 8 et versions ultérieures de Windows. L’implémentation de AuxKlibGetSystemFirmwareTable dans ces versions de WDK peut être utilisée dans les versions de Windows à partir de Windows Vista.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Pris en charge à partir de Windows Vista.
Plateforme cible Universal
En-tête aux_klib.h (include Aux_klib.h)
Bibliothèque Aux_Klib.lib
IRQL PASSIVE_LEVEL

Voir aussi

AuxKlibEnumerateSystemFirmwareTables

AuxKlibInitialize

GetSystemFirmwareTable