Fonction EnumSystemFirmwareTables (sysinfoapi.h)

Énumère toutes les tables de microprogrammes système du type spécifié.

Syntaxe

UINT EnumSystemFirmwareTables(
  [in]  DWORD FirmwareTableProviderSignature,
  [out] PVOID pFirmwareTableEnumBuffer,
  [in]  DWORD BufferSize
);

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 microprogramme brut. Non pris en charge pour les systèmes UEFI ; utilisez « RSMB » à la place.
'RSMB' Fournisseur de table de microprogrammes SMBIOS brut.

[out] pFirmwareTableEnumBuffer

Pointeur vers une mémoire tampon qui reçoit la liste des tables de microprogrammes. Si ce paramètre a la valeur NULL, la valeur de retour correspond à la taille de mémoire tampon requise.

Pour plus d’informations sur le contenu de cette mémoire tampon, consultez la section Remarques.

[in] BufferSize

Taille de la mémoire tampon pFirmwareTableBuffer , en octets.

Valeur retournée

Si la fonction réussit, la valeur de retour est le nombre d’octets écrits dans la mémoire tampon. Cette valeur sera toujours inférieure ou égale à BufferSize.

Si la fonction échoue parce que la mémoire tampon n’est pas assez grande, la valeur de retour correspond à la taille de mémoire tampon requise, en octets. Cette valeur est toujours supérieure à BufferSize.

Si la fonction échoue pour une autre raison, la valeur de retour est zéro. Pour obtenir des informations détaillées sur l’erreur, appelez GetLastError.

Remarques

À compter de Windows 10 version 1803, les applications Windows universelles peuvent accéder aux informations du BIOS de gestion du système (SMBIOS) en déclarant la fonctionnalité restreinte smbios dans le manifeste de l’application. Pour plus d’informations, consultez Accéder aux informations SMBIOS à partir d’une application Windows universelle . Seules les tables de microprogrammes SMBIOS brutes (RSMB) sont accessibles à partir d’une application Windows universelle.

À partir de Windows Server 2003 avec Service Pack 1 (SP1), les applications ne peuvent pas accéder à l’objet \Device\PhysicalMemory. L’accès à cet objet est limité aux pilotes en mode noyau. Cette modification affecte les applications lisant le BIOS de gestion du système (SMBIOS) ou d’autres données BIOS stockées dans les 1 Mo de mémoire physique les plus faibles. Les applications ont les alternatives suivantes pour lire les données à partir d’une mémoire physique faible :

  • Récupérez les propriétés SMBIOS à l’aide de WMI. De nombreuses propriétés individuelles sont contenues dans les classes Win32. Vous pouvez également récupérer les données SMBIOS brutes dans une mémoire tampon unique à l’aide de la classe MSSMBios_RawSMBiosTables .
  • Utilisez la fonction GetSystemFirmwareTable pour lire la table de microprogrammes SMBIOS brute.
Il n’existe aucun moyen pour les applications d’écrire dans une mémoire physique faible.

Le fournisseur de table SMBIOS brut (« RSMB ») retourne actuellement un identificateur de table unique, 0x0000. Cela correspond à la table de microprogrammes SMBIOS brute.

Le fournisseur de table de microprogrammes brut (« FIRM ») retourne une liste d’identificateurs de table DWORD . Chaque identificateur correspond au début d’une plage d’adresses physique. Actuellement, ce fournisseur retourne « C0000 » et « E0000 ». Ces valeurs correspondent à la mémoire physique de 0xC0000 à 0xDFFFF et 0xE0000 à 0xFFFFF, respectivement.

Le fournisseur de table ACPI (« ACPI ») retourne une liste d’identificateurs de table DWORD . Chaque identificateur retourné correspond au champ Signature de la structure DESCRIPTION_HEADER d’une table ACPI actuellement dans l’espace de noms ACPI du système.

Pour ACPI, si le système contient plusieurs tables portant le même nom, elles sont toutes énumérées avec EnumSystemFirmwareTables. Toutefois, GetSystemFirmwareTable récupère uniquement la première table de la liste portant ce nom.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows Vista, Windows XP Professionnel Édition x64 [applications de bureau | Applications UWP]
Serveur minimal pris en charge Windows Server 2008, Windows Server 2003 avec SP1 [applications de bureau | Applications UWP]
Plateforme cible Windows
En-tête sysinfoapi.h (inclure Windows.h)
Bibliothèque Kernel32.lib
DLL Kernel32.dll

Voir aussi

Accéder aux informations SMBIOS à partir d’une application Windows universelle

GetSystemFirmwareTable

Fonctions d’information système