共用方式為


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時,任何傳遞至 EtwWriteEtwWriteExEtwWriteStringEtwWriteTransfer 函式的數據都不得分頁。 也就是說,在 IRQL 上執行且大於 APC_LEVEL 的任何內核模式例程都無法存取可分頁記憶體。 傳遞至 EtwWriteEtwWriteExEtwWriteString的數據,以及 EtwWriteTransfer 函式必須位於系統空間記憶體中,不論 IRQL 是什麼。

要求

要求 價值
最低支援的用戶端 適用於 Windows Vista 和更新版本的 Windows。
目標平臺 普遍
標頭 wdm.h (包括 Wdm.h、 Ntddk.h)
連結庫 NtosKrnl.lib
DLL NtosKrnl.exe
IRQL 任何層級 (請參閱批注一節。

另請參閱

EtwWrite

EtwWriteEx

EtwWriteTransfer