DXGKCB_LOG_ETW_EVENT fonction de rappel (dispmprt.h)

La fonction DxgkCbLogEtwEvent consigne un événement de 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 à consigner.

[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. Le 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é de performances importante 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 d’EventGuid.

Valeur de retour

None

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é n’importe quel IRQL. Si EventBufferSize est supérieur à 256, DxgkCbLogEtwEvent doit être appelé à l’adresse IRQL = PASSIVE_LEVEL.

Exemple : Journalisation d’un événement avec l’enregistreur d’événements

L’exemple de code suivant montre comment journaliser 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), la fonction de rappel DxgkCbLogEtwEvent d’un pilote graphique peut exposer des événements importants pertinents pour le triage et la surveillance Azure. À mesure qu’Azure ajoute des offres vGPU, il devient plus important de disposer d’un mécanisme pour exposer les événements importants que le pilote voit. L’exposition des réinitialisations au niveau de la fonction (TDR VF) et des réinitialisations de GPU entiers (TDR à l’échelle de l’adaptateur) est particulièrement importante pour la surveillance et l’intégrité. À l’avenir, cette infrastructure 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 pilote 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 fournir des informations de triage dans les pipelines de supervision Azure standard utilisés pour le tri 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 exposer 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 DXGKARG_PARTITIONING_EVENT_NOTIFICATION .

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows Vista
Plateforme cible Desktop (Expérience utilisateur)
En-tête dispmprt.h (inclure Dispmprt.h)
IRQL Consultez la section Notes.

Voir aussi

DXGKARG_PARTITIONING_EVENT_NOTIFICATION

DxgkDdiControlEtwLogging