Freigeben über


DXGKCB_LOG_ETW_EVENT Rückruffunktion (dispmprt.h)

Die DxgkCbLogEtwEvent--Funktion protokolliert ein Ereignisablaufverfolgungsereignis für Windows (ETW).

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 weisen die Form von EVENT_TRACE_TYPE_XXauf. Typ- wird ignoriert, wenn EventGuid- GUID_DXGKDDI_AZURE_TRIAGE_EVENT ist.

[in] EventBufferSize

Die Größe des Puffers in Byte, auf den EventBufferverweist. 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 EventGuid.

Rückgabewert

Nichts

Bemerkungen

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

Rufen Sie zum Aktivieren oder Deaktivieren der Ereignisprotokollierung die DxgkDdiControlEtwLogging-Funktion auf.

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

Beispiel: Protokollieren eines Ereignisses mit dem Ereignisprotokollierer

Das folgende Codebeispiel zeigt, wie ein Ereignis mit dem Ereignisprotokollierer 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);
}

Protokollierung von Azure-Treiberereignissen

Ab Windows Server 2022 (WDDM 2.9) kann die DxgkCbLogEtwEvent- Funktion eines Grafiktreibers wichtige Ereignisse verfügbar machen, die für Azure-Triage und -Überwachung relevant sind. Da Azure vGPU-Angebote hinzufügt, wird es wichtiger, einen Mechanismus zu haben, um wichtige Ereignisse verfügbar zu machen, die der Treiber sieht. Besonders wichtig für die Überwachung und Integrität ist die Exposition von Resets auf Funktionsebene (VF TDRs) und Ganz-GPU-Resets (adapterweite TDRs). In Zukunft ermöglicht dieses Framework dem Betriebssystem, zusätzliche wichtige Ereignisse verfügbar zu machen, die treiberspezifische Verhaltensweisen umfassen können, die beim Eintreffen von Problemen einen Triagewert aufweisen.

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 Vorfallstriage verwendet werden. Sie können auch in andere Grafikereignisse integriert werden, die auch zum Erstellen von Computerereignishistorien verfügbar gemacht werden und nützliche Abfragen verfügbar machen, 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
mindestens unterstützte Client- Windows Vista
Zielplattform- Desktop
Header- dispmprt.h (include Dispmprt.h)
IRQL- Siehe Abschnitt "Hinweise".

Siehe auch

DXGKARG_PARTITIONING_EVENT_NOTIFICATION

DxgkDdiControlEtwLogging-