共用方式為


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

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

傳回值

沒有

言論

如果未啟用事件記錄,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