DXGKCB_LOG_ETW_EVENT Rückruffunktion (dispmprt.h)

Die DxgkCbLogEtwEvent-Funktion protokolliert ein ETW-Ereignis (Event Tracing for Windows).

Syntax

DXGKCB_LOG_ETW_EVENT DxgkcbLogEtwEvent;

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

Parameter

[in] EventGuid

Eine GUID, die das zu protokollierende Ereignis identifiziert.

[in] Type

Eine Konstante, die den Ereignistyp angibt. Diese Konstanten werden in Evntrace.h definiert und haben die Form von EVENT_TRACE_TYPE_XX. Der Typ wird ignoriert, wenn EventGuid GUID_DXGKDDI_AZURE_TRIAGE_EVENT wird.

[in] EventBufferSize

Die Größe des Puffers in Bytes, auf den EventBuffer verweist. Es gibt eine erhebliche Leistungseinbuße, wenn der Puffer größer als 256 Bytes ist.

[in] EventBuffer

Ein Zeiger auf einen Puffer, der die zu protokollierenden Informationen enthält. Dieser Parameter kann NULL oder ein Zeiger auf den folgenden Strukturtyp sein, abhängig vom Wert von EventGuid.

Rückgabewert

Keine

Bemerkungen

Wenn die Ereignisprotokollierung nicht aktiviert ist, wird DxgkCbLogEtwEvent sofort ohne Protokollierung des Ereignisses zurückgegeben.

Um die Ereignisprotokollierung zu aktivieren oder zu deaktivieren, rufen Sie die DxgkDdiControlEtwLogging-Funktion auf .

Wenn EventBufferSize kleiner als oder gleich 256 ist, kann DxgkCbLogEtwEvent als eine beliebige IRQL bezeichnet werden. Wenn EventBufferSize größer als 256 ist, muss DxgkCbLogEtwEvent unter IRQL = PASSIVE_LEVEL aufgerufen werden.

Beispiel: Protokollieren eines Ereignisses mit der Ereignisprotokollierung

Das folgende Codebeispiel zeigt, wie ein Ereignis mit der Ereignisprotokollierung protokolliert wird.

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

Protokollieren von Azure-Treiberereignissen

Ab Windows Server 2022 (WDDM 2.9) kann die DxgkCbLogEtwEvent-Rückruffunktion eines Grafiktreibers wichtige Ereignisse verfügbar machen, die für die Azure-Triage und -Überwachung relevant sind. Wenn Azure vGPU-Angebote hinzufügt, wird es wichtiger, über einen Mechanismus zum Verfügbarmachen wichtiger Ereignisse zu verfügen, die der Treiber sieht. Besonders wichtig für die Überwachung und Integrität ist die Offenlegung von Resets auf Funktionsebene (VF-TDRs) und Whole-GPU-Resets (adapterweite TDRs). In Zukunft wird dieses Framework es dem Betriebssystem ermöglichen, zusätzliche wichtige Ereignisse verfügbar zu machen, die möglicherweise treiberspezifische Verhaltensweisen umfassen, die beim Eintreffen von Problemen einen Triagewert haben.

Ein Treiber sollte die folgende GUID verwenden, um bestimmte Azure-Treiberereignisse zu melden:


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

Diese Ereignisse werden von den Grafikkernkomponenten verwendet, um Triageinformationen in Standardmäßige Azure-Überwachungspipelines einzuspeisen, die für die Incidenttriage verwendet werden. Sie integrieren sich in andere Grafikereignisse, die auch für Erstellungscomputerereignisverläufe verfügbar gemacht werden, und machen nützliche Abfragen verfügbar, die bei der Überwachung der Integrität des Hosts und der unterstützten VMs verwendet werden.

Wenn diese GUID verwendet wird, verweist EventBuffer auf eine DXGKARG_PARTITIONING_EVENT_NOTIFICATION-Struktur .

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows Vista
Zielplattform Desktop
Kopfzeile dispmprt.h (include Dispmprt.h)
IRQL Weitere Informationen finden Sie im Abschnitt mit den Hinweisen.

Weitere Informationen

DXGKARG_PARTITIONING_EVENT_NOTIFICATION

DxgkDdiControlEtwLogging