共用方式為


EtwWriteEx 函式 (wdm.h)

EtwWriteEx 函式是一種追蹤函式,可發佈支援在核心模式驅動程式程式代碼中篩選的事件。

語法

NTSTATUS EtwWriteEx(
  [in]           REGHANDLE              RegHandle,
  [in]           PCEVENT_DESCRIPTOR     EventDescriptor,
  [in]           ULONG64                Filter,
  [in]           ULONG                  Flags,
  [in, optional] LPCGUID                ActivityId,
  [in, optional] LPCGUID                RelatedActivityId,
  [in]           ULONG                  UserDataCount,
  [in, optional] PEVENT_DATA_DESCRIPTOR UserData
);

參數

[in] RegHandle

事件提供者註冊句柄的指標,如果事件提供者註冊成功, 則 EtwRegister 函式會傳回此指標。

[in] EventDescriptor

EVENT_DESCRIPTOR 結構的指標。

[in] Filter

識別事件不會寫入之會話的實例標識碼。 也就是說,此值是會話的遮罩,應該從記錄中排除 (篩選出) 。 使用位 OR 來指定多個識別碼。 如果您不支持篩選,或事件正在寫入所有工作階段, (沒有篩選失敗) ,請將 設定為零。 如需取得會話標識碼的詳細資訊,請參閱 EtwEnableCallback 回呼的 FilterData 參數。

[in] Flags

保留的。 必須是零 (0) 。

[in, optional] ActivityId

標識符,表示與事件相關聯的活動。 ActivityID 提供將相關事件分組的方式,並用於端對端追蹤。 如果為 NULL,ETW 會從線程本機記憶體取得標識碼。 如需取得此標識碼的詳細資訊,請參閱 EtwActivityIdControl

[in, optional] RelatedActivityId

上一個元件中的活動識別項。 請使用此參數將元件的事件連結到上一個元件的事件。 若要取得為上一個元件設定的活動標識碼,請參閱 EtwActivityIdControl 函式 ControlCode 參數的描述。

[in] UserDataCount

UserData 中的EVENT_DATA_DESCRIPTOR結構數目。 最大數目為 128。

[in, optional] UserData

EVENT_DATA_DESCRIPTOR 結構的陣列指標。 如果 UserDataCount 為零,請將此參數設定為 NULL。 資料必須按照資訊清單中指定的順序排列。

傳回值

如果成功或發生下列其中一個值,則傳回ERROR_SUCCESS。

備註

EtwWriteEx 函式是與使用者模式 EventWriteEx 函式相等的核心模式。 以此函式撰寫的事件數據需要指令清單。 指令清單內嵌在提供者中,因此提供者必須可供取用者取用數據。 若要確保您發行的事件有取用者,您可以在呼叫 EtwWrite 之前呼叫 EtwEventEnabledEtwProviderEnabled

當您想要在端對端追蹤案例中的不同元件中關聯事件時,請使用 ActivityIdRelatedActivityId 參數。 例如,元件 A、B 和 C 會對相關活動執行工作,並想要連結其事件,讓取用者可以取用與該活動相關的所有事件。

您可以在任何 IRQL 呼叫 EtwWriteEx 。 不過,當 IRQL 大於APC_LEVEL時,傳遞至 EtwWriteEtwWriteEx、EtwWriteStringEtwWriteTransfer 函式的任何數據都不得分頁。 也就是說,在 IRQL 上執行的任何核心模式例程大於APC_LEVEL都無法存取可分頁的記憶體。 傳遞至 EtwWrite、EtwWriteExEtwWriteStringEtwWriteTransfer 函式的數據必須位於系統空間記憶體中,不論 IRQL 是什麼。

規格需求

需求
最低支援的用戶端 Windows 7
最低支援的伺服器 Windows Server 2008 R2
目標平台 Universal
標頭 wdm.h
程式庫 NtosKrnl.lib
Dll NtosKrnl.exe

另請參閱

EtwWrite

EventWrite

EventWriteEx