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) |