EtwWriteString 函式 (wdm.h)
EventWriteString 函式是追蹤函式,您可以在不需要複雜的數據時使用。 此函式類似於偵錯列印語句。
語法
NTSTATUS EtwWriteString(
[in] REGHANDLE RegHandle,
[in] UCHAR Level,
[in] ULONGLONG Keyword,
[in, optional] LPCGUID ActivityId,
[in] PCWSTR String
);
參數
[in] RegHandle
事件提供者註冊句柄的指標,如果事件提供者註冊成功, 則 EtwRegister 函式會傳回此句柄。
[in] Level
事件作用中的層級。
[in] Keyword
事件的關鍵詞。 關鍵詞是位掩碼,可對事件或錯誤類別進行一般語句。 因為 關鍵詞是位掩碼,所以您可以將多個關鍵詞套用至單一事件。 您可以定義關鍵詞和位位置,也可以使用 Windows 標準關鍵詞,也可以使用自己的關鍵詞和 Windows 關鍵詞的組合。
[in, optional] ActivityId
標識符,表示與事件相關聯的活動。 ActivityId 提供將相關事件分組的方式,並用於端對端追蹤。 此標識碼是選擇性的,可以是 NULL。
[in] String
以 Null 結尾的字串 (WCHAR) 。
傳回值
如果成功發佈事件,函式會傳回STATUS_SUCCESS。
備註
由於 EventWriteString 函式所產生的字串無法當地語系化,因此不建議在生產程式代碼中使用此函式。 此函式不應該用來記錄高度可見的事件。
您可以在任何 IRQL 呼叫 EtwWriteString 。 不過,當 IRQL 大於 APC_LEVEL時,傳遞至 EtwWrite、EtwWriteEx、EtwWriteString 和 EtwWriteTransfer 函式的任何數據都必須不可分頁。 也就是說,在 IRQL 上執行的任何核心模式例程大於APC_LEVEL都無法存取可分頁的記憶體。 傳遞至 EtwWrite、EtwWriteEx、EtwWriteString 和 EtwWriteTransfer 函式的數據必須位於系統空間記憶體中,不論 IRQL 是什麼。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | 可在 Windows Vista 和更新版本的 Windows 中使用。 |
目標平台 | Universal |
標頭 | wdm.h (包括 Wdm.h、Ntddk.h) |
程式庫 | NtosKrnl.lib |
Dll | NtosKrnl.exe |
IRQL | 任何層級 (請參閱批注一節。) |