DXGKCB_LOG_ETW_EVENT funzione di callback (dispmprt.h)

La funzione DxgkCbLogEtwEvent registra un evento ETW (Event Tracing for Windows).

Sintassi

DXGKCB_LOG_ETW_EVENT DxgkcbLogEtwEvent;

void DxgkcbLogEtwEvent(
  [in] const LPCGUID EventGuid,
  [in] UCHAR Type,
  [in] USHORT EventBufferSize,
  [in] PVOID EventBuffer
)
{...}

Parametri

[in] EventGuid

GUID che identifica l'evento da registrare.

[in] Type

Costante che specifica il tipo di evento. Queste costanti sono definite in Evntrace.h e hanno la forma di EVENT_TRACE_TYPE_XX. Il tipo viene ignorato quando EventGuid viene GUID_DXGKDDI_AZURE_TRIAGE_EVENT.

[in] EventBufferSize

Dimensione, in byte, del buffer a cui punta EventBuffer. Se il buffer supera i 256 byte, si verifica una riduzione significativa delle prestazioni.

[in] EventBuffer

Puntatore a un buffer contenente le informazioni da registrare. Questo parametro può essere NULL o un puntatore al tipo di struttura seguente a seconda del valore di EventGuid.

Valore restituito

nessuno

Osservazioni

Se la registrazione eventi non è abilitata, DxgkCbLogEtwEvent restituisce immediatamente senza registrare l'evento.

Per abilitare o disabilitare la registrazione eventi, chiamare la funzione DxgkDdiControlEtwLogging .

Se EventBufferSize è minore o uguale a 256, DxgkCbLogEtwEvent può essere chiamato qualsiasi IRQL. Se EventBufferSize è maggiore di 256, DxgkCbLogEtwEvent deve essere chiamato in IRQL = PASSIVE_LEVEL.

Esempio: Registrazione di un evento con il logger di eventi

Nell'esempio di codice seguente viene illustrato come registrare un evento con il logger di eventi.

// {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);
}

Registrazione degli eventi del driver di Azure

A partire da Windows Server 2022 (WDDM 2.9), la funzione di callback DxgkCbLogEtwEvent di un driver grafico può esporre eventi importanti rilevanti per la valutazione e il monitoraggio di Azure. Man mano che Azure aggiunge offerte vGPU, diventerà più importante avere un meccanismo per esporre eventi importanti visualizzati dal driver. Particolarmente importante per il monitoraggio e l'integrità è l'esposizione di reimpostazioni a livello di funzione (TDR VF) e reimpostazioni dell'intera GPU (TDR a livello di scheda). In futuro, questo framework consentirà al sistema operativo di esporre eventi importanti aggiuntivi che potrebbero comportare comportamenti specifici del driver con valore di valutazione all'arrivo dei problemi.

Un driver deve usare il GUID seguente per segnalare eventi specifici del driver di Azure:


DEFINE_GUID(GUID_DXGKDDI_AZURE_TRIAGE_EVENT,
0x45125F6F, 0x6132, 0x4082, 0xAD, 0x17, 0xED, 0x27, 0xF8, 0xDD, 0x02, 0xF9);

Questi eventi vengono usati dai componenti del kernel grafico per inserire informazioni di valutazione nelle pipeline di monitoraggio standard di Azure usate per la valutazione degli eventi imprevisti. Si integrano con altri eventi grafici esposti anche per creare cronologie eventi del computer ed esporre query utili da usare nel monitoraggio dell'integrità dell'host e delle macchine virtuali supportate.

Quando si usa questo GUID, EventBuffer punta a una struttura DXGKARG_PARTITIONING_EVENT_NOTIFICATION .

Requisiti

Requisito Valore
Client minimo supportato Windows Vista
Piattaforma di destinazione Desktop
Intestazione dispmprt.h (include Dispmprt.h)
IRQL Vedere la sezione Osservazioni.

Vedi anche

DXGKARG_PARTITIONING_EVENT_NOTIFICATION

DxgkDdiControlEtwLogging