DXGKCB_LOG_ETW_EVENT回呼函式 (dispmprt.h)

DxgkCbLogEtwEvent 函式會記錄 Windows (ETW 的事件追蹤) 事件。

語法

DXGKCB_LOG_ETW_EVENT DxgkcbLogEtwEvent;

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

參數

[in] EventGuid

GUID,識別要記錄的事件。

[in] Type

指定事件類型的常數。 這些常數定義於 Evntrace.h 中,且具有 EVENT_TRACE_TYPE_XX的形式。 當 EventGuid GUID_DXGKDDI_AZURE_TRIAGE_EVENT時,會忽略類型

[in] EventBufferSize

EventBuffer 所指向之緩衝區的大小,以位元組為單位。 如果緩衝區大於 256 個字節,則效能會大幅降低。

[in] EventBuffer

緩衝區的指標,其中包含要記錄的資訊。 根據 EventGuid 的值,此參數可以是 NULL 或下列結構類型的指標。

傳回值

備註

如果未啟用事件記錄, DxgkCbLogEtwEvent 會立即傳回而不記錄事件。

若要啟用或停用事件記錄,請呼叫 DxgkDdiControlEtwLogging 函式

如果 EventBufferSize 小於或等於 256, 則 DxgkCbLogEtwEvent 可以呼叫任何 IRQL。 如果 EventBufferSize 大於 256,則必須在 IRQL = PASSIVE_LEVEL呼叫 DxgkCbLogEtwEvent

範例:使用事件記錄器記錄事件

下列程式代碼範例示範如何使用事件記錄器記錄事件。

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

記錄 Azure 驅動程式事件

從 Windows Server 2022 (WDDM 2.9) 開始,圖形驅動程式的 DxgkCbLogEtwEvent 回呼函式可以公開與 Azure 分級和監視相關的重要事件。 當 Azure 新增 vGPU 供應專案時,擁有機制來公開驅動程式看到的重要事件會變得更重要。 監視和健康情況特別重要,在於 VF TDR () 和整個 GPU 重設 (全適配卡 TDR) 公開函式層級重設。 未來,此架構可讓OS公開其他重要事件,這些事件可能會牽涉到在問題送達時具有分級值的驅動程式特定行為。

驅動程式應該使用下列 GUID 來報告特定的 Azure 驅動程式事件:


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

圖形核心元件會使用這些事件,將分級資訊饋送至用於事件分級的標準 Azure 監視管線。 它們與其他圖形事件整合,也會公開以建置計算機事件歷程記錄,並公開有用的查詢,以用於監視主機的健康情況及其支援的 VM。

使用此 GUID 時, EventBuffer 會指向 DXGKARG_PARTITIONING_EVENT_NOTIFICATION 結構。

規格需求

需求
最低支援的用戶端 Windows Vista
目標平台 桌面
標頭 dispmprt.h (包括 Dispmprt.h)
IRQL 請參閱一節。

另請參閱

DXGKARG_PARTITIONING_EVENT_NOTIFICATION

DxgkDdiControlEtwLogging