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 |
---|---|
|
Un paramètre non valide a été fourni à la routine. |
|
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 |