DXGKCB_LOG_ETW_EVENT fonction de rappel (dispmprt.h)
La fonction DxgkCbLogEtwEvent journalise un événement suivi d’événements pour Windows (ETW).
Syntaxe
DXGKCB_LOG_ETW_EVENT DxgkcbLogEtwEvent;
void DxgkcbLogEtwEvent(
[in] const LPCGUID EventGuid,
[in] UCHAR Type,
[in] USHORT EventBufferSize,
[in] PVOID EventBuffer
)
{...}
Paramètres
[in] EventGuid
GUID qui identifie l’événement à journaliser.
[in] Type
Constante qui spécifie le type d’événement. Ces constantes sont définies dans Evntrace.h et ont la forme de EVENT_TRACE_TYPE_XX. type est ignoré lorsque EventGuid est GUID_DXGKDDI_AZURE_TRIAGE_EVENT.
[in] EventBufferSize
Taille, en octets, de la mémoire tampon pointée par EventBuffer. Il existe une pénalité significative des performances si la mémoire tampon est supérieure à 256 octets.
[in] EventBuffer
Pointeur vers une mémoire tampon qui contient les informations à journaliser. Ce paramètre peut être NULL ou un pointeur vers le type de structure suivant en fonction de la valeur de EventGuid.
Valeur de retour
Aucun
Remarques
Si la journalisation des événements n’est pas activée, DxgkCbLogEtwEvent retourne immédiatement sans journaliser l’événement.
Pour activer ou désactiver la journalisation des événements, appelez la fonction DxgkDdiControlEtwLogging.
Si EventBufferSize est inférieur ou égal à 256, DxgkCbLogEtwEvent peut être appelé irQL. Si EventBufferSize est supérieur à 256, DxgkCbLogEtwEvent doit être appelée à IRQL = PASSIVE_LEVEL.
Exemple : journalisation d’un événement avec l’enregistreur d’événements
L’exemple de code suivant montre comment consigner un événement avec l’enregistreur d’événements.
// {A7BF27A0-7401-4733-9FED-FDB51067FECC}
DEFINE_GUID(R200_DUMMY_LOGGING,
0xa7bf27a0, 0x7401, 0x4733, 0x9f, 0xed, 0xfd, 0xb5, 0x10, 0x67, 0xfe, 0xcc);
VOID
DummyTrace(
HW_DEVICE_EXTENSION* Adapter
)
{
Adapter->ddiCallback.DxgkCbLogEtwEvent(&R200_DUMMY_LOGGING,
EVENT_TRACE_TYPE_INFO,
0,
NULL);
}
Journalisation des événements de pilote Azure
À compter de Windows Server 2022 (WDDM 2.9), le DxgkCbLogEtwEvent d’un pilote graphique fonction de rappel peut exposer des événements importants pertinents pour le triage et la surveillance Azure. Comme Azure ajoute des offres de processeur virtuel, il devient plus important d’avoir un mécanisme pour exposer des événements importants que le pilote voit. Particulièrement important pour la surveillance et l’intégrité, il s’agit de l’exposition des réinitialisations au niveau de la fonction (VF TDR) et des réinitialisations complètes du GPU (TDR à l’échelle de l’adaptateur). À l’avenir, ce framework permettra au système d’exploitation d’exposer des événements importants supplémentaires qui peuvent impliquer des comportements spécifiques au pilote qui ont une valeur de triage lorsque des problèmes arrivent.
Un pilote doit utiliser le GUID suivant pour signaler des événements de pilotes Azure spécifiques :
DEFINE_GUID(GUID_DXGKDDI_AZURE_TRIAGE_EVENT,
0x45125F6F, 0x6132, 0x4082, 0xAD, 0x17, 0xED, 0x27, 0xF8, 0xDD, 0x02, 0xF9);
Ces événements sont utilisés par les composants du noyau graphique pour alimenter les informations de triage dans des pipelines de surveillance Azure standard utilisés pour le triage des incidents. Ils s’intègrent à d’autres événements graphiques également exposés pour générer des historiques d’événements de machine et exposent des requêtes utiles à utiliser dans la surveillance de l’intégrité de l’hôte et des machines virtuelles qu’il prend en charge.
Lorsque ce GUID est utilisé, EventBuffer pointe vers une structure de DXGKARG_PARTITIONING_EVENT_NOTIFICATION.
Exigences
Exigence | Valeur |
---|---|
client minimum pris en charge | Windows Vista |
plateforme cible | Bureau |
d’en-tête | dispmprt.h (include Dispmprt.h) |
IRQL | Voir la section Remarques. |