Partager via


structure DXGK_FIRMWARE_TABLE_INTERFACE (dispmprt.h)

Contient des fonctions que les pilotes d’affichage en mode utilisateur peuvent utiliser pour lire et énumérer la table du microprogramme système. Ces fonctions sont fournies par le sous-système du noyau graphique Microsoft DirectX et peuvent être appelées par les pilotes d’affichage en mode utilisateur WDDM 1.2 et ultérieur.

Syntaxe

typedef struct _DXGK_FIRMWARE_TABLE_INTERFACE {
  USHORT                 Size;
  USHORT                 Version;
  PVOID                  Context;
  PINTERFACE_REFERENCE   InterfaceReference;
  PINTERFACE_DEREFERENCE InterfaceDereference;
  NTSTATUS(VOID *Context,ULONG ProviderSignature,ULONG BufferSize,VOID *Buffer,ULONG *RequiredSize)              * )(EnumSystemFirmwareTables;
  NTSTATUS(VOID *Context,ULONG ProviderSignature,ULONG TableId,ULONG BufferSize,VOID *Buffer,ULONG *RequiredSize)              * )(ReadSystemFirmwareTable;
} DXGK_FIRMWARE_TABLE_INTERFACE, *PDXGK_FIRMWARE_TABLE_INTERFACE;

Membres

Size

Taille, en octets, de cette structure.

Version

Numéro de version de l’interface table du microprogramme système. Les constantes de numéro de version sont définies dans Dispmprt.h (par exemple, DXGK_FIRMWARE_TABLE_INTERFACE_VERSION_1).

Context

Pointeur vers un contexte fourni par le pilote de port d’affichage.

InterfaceReference

Pointeur vers une fonction de référence d’interface implémentée par le pilote de port d’affichage.

InterfaceDereference

Pointeur vers une fonction de déréférencement d’interface implémentée par le pilote de port d’affichage.

EnumSystemFirmwareTables

Énumère la table du microprogramme système. Tous les paramètres d’entrée sont fournis par le pilote miniport d’affichage.

Syntaxe:

NTSTATUS EnumSystemFirmwareTables(
  _In_      VOID  *Context,
  _In_      ULONG ProviderSignature,
  _In_      ULONG TableId,
  _In_      ULONG BufferSize,
  _Out_opt_ VOID  *Buffer,
  _Out_     ULONG *RequiredSize
);

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

Le fournisseur de table de microprogramme 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 de 0xE0000 à 0xFFFFF, respectivement.

Le fournisseur de tables ACPI ('ACPI') retourne une liste de identificateurs de table DWORD. Chaque identificateur retourné correspond au membre Signature de la structure DESCRIPTION_HEADER pour 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, ReadSystemFirmwareTable récupère uniquement la première table de la liste portant ce nom.

Contexte

Handle vers un bloc de contexte associé à un adaptateur d’affichage. La fonction DxgkDdiAddDevice du pilote de miniport d’affichage a précédemment fourni ce handle au sous-système du noyau graphique DirectX.

ProviderSignature

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.

TableId

Identificateur de la table du microprogramme. Cet identificateur est au format little-endian. Vous devez donc inverser les caractères de la chaîne.

Par exemple, FACP est un fournisseur ACPI, comme décrit dans le membre signature de la structure DESCRIPTION_HEADER dans la spécification ACPI . Par conséquent, utilisez « PCAF » pour spécifier la table FACP, comme illustré dans l’exemple suivant :

retVal = ReadSystemFirmwareTable('ACPI', 'PCAF', pBuffer, BUFSIZE);

BufferSize

Taille de la mémoire tampon pointée par le paramètre de tampon, en octets.

Tampon

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

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

RequiredSize

Pointeur vers une valeur qui reçoit la taille minimale de la mémoire tampon pointée par tampon, en octets, que le système d’exploitation doit traiter la demande d’énumération.

ReadSystemFirmwareTable

Lit la table du microprogramme système. Tous les paramètres d’entrée sont fournis par le pilote miniport d’affichage.

NTSTATUS ReadSystemFirmwareTable(
  _In_      VOID  *Context,
  _In_      ULONG ProviderSignature,
  _In_      ULONG TableId,
  _In_      ULONG BufferSize,
  _Out_opt_ VOID  *Buffer,
  _Out_     ULONG *RequiredSize
);

Le fournisseur de table SMBIOS brut ('RSMB') récupère le contenu de la table de microprogramme SMBIOS brute. La mémoire tampon pointée par le paramètre de la mémoire tampon reçoit les données suivantes :

#include <windows.h>

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. ReadSystemFirmwareTable retourne 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 la fonction EnumSystemFirmwareTables pour énumérer toutes les tables ACPI actuellement sur le 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, ReadSystemFirmwareTable récupère uniquement la première table de la liste portant ce nom.

Contexte

Handle vers un bloc de contexte associé à un adaptateur d’affichage. La fonction d’affichage du pilote miniport DxgkDdiAddDevice précédemment fourni ce handle au sous-système du noyau graphique DirectX.

ProviderSignature

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.

TableId

Identificateur de la table du microprogramme. Cet identificateur est au format little-endian. Vous devez donc inverser les caractères de la chaîne.

Par exemple, FACP est un fournisseur ACPI, comme décrit dans le membre signature de la structure DESCRIPTION_HEADER dans la spécification ACPI . Par conséquent, utilisez « PCAF » pour spécifier la table FACP, comme illustré dans l’exemple suivant :

retVal = ReadSystemFirmwareTable('ACPI', 'PCAF', pBuffer, BUFSIZE);

BufferSize

Taille de la mémoire tampon pointée par le paramètre de tampon, en octets.

Tampon

Pointeur facultatif vers une mémoire tampon qui reçoit la table de microprogramme demandée. Si ce paramètre est NULL, la valeur de retour est la taille de mémoire tampon requise.

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

RequiredSize

Pointeur vers une valeur qui reçoit la taille minimale de la mémoire tampon pointée par tampon, en octets, que le système d’exploitation doit traiter la demande de lecture.

Exigences

Exigence Valeur
client minimum pris en charge Windows 8
serveur minimum pris en charge Windows Server 2012
d’en-tête dispmprt.h (include Dispmprt.h)

Voir aussi

EnumSystemFirmwareTables

ReadSystemFirmwareTable