Partager via


Fonction AuxKlibGetSystemFirmwareTable (aux_klib.h)

La routine AuxKlibGetSystemFirmwareTable récupère la table de microprogramme spécifiée du fournisseur de tables 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 être l’une des valeurs suivantes.

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

[in] FirmwareTableID

Identificateur de la table du microprogramme. Les caractères de l’identificateur sont dans un ordre peu endien.

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 par 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 la spécification avancée de configuration et d’interface d’alimentation sur le site web Advanced Configuration and Power Interface.

[out, optional] FirmwareTableBuffer

Pointeur vers une mémoire tampon allouée par l’appelant qui reçoit la liste des tables de microprogramme. Si ce paramètre est 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 vers lequel la routine écrit le nombre d’octets de données écrites dans la mémoire tampon pointée par FirmwareTableBuffer.

Valeur de retour

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

Retourner le code Description
STATUS_INVALID_PARAMETER
Un paramètre non valide a été fourni à la routine.
STATUS_BUFFER_TOO_SMALL
La mémoire tampon allouée par 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 brut ('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 microprogramme brut ('FIRM') récupère le contenu de la plage d’adresses physique spécifiée. La valeur écrite dans *ReturnLength est la taille de la plage d’adresses.

Le fournisseur de tables ACPI ('ACPI') récupère le contenu de la table ACPI spécifiée. Étant donné que les 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 tous. Toutefois, AuxKlibGetSystemFirmwareTable récupère uniquement la première table de la liste portant 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 wdK pour Windows 8 et versions ultérieures de Windows. Pour utiliser cette routine, les pilotes doivent établir un lien vers 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.

Exigences

Exigence Valeur
client minimum pris en charge Prise en charge à partir de Windows Vista.
plateforme cible Universel
d’en-tête aux_klib.h (include Aux_klib.h)
bibliothèque Aux_Klib.lib
IRQL PASSIVE_LEVEL

Voir aussi

AuxKlibEnumerateSystemFirmwareTables

AuxKlibInitialize

GetSystemFirmwareTable