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。 |
目標平臺 | 普遍 |
標頭 | wdm.h (包括 Wdm.h、 Ntddk.h) |
連結庫 | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | 任何層級 (請參閱批注一節。 |