EvtRender 函式 (winevt.h)
根據您指定的轉譯內容,轉譯 XML 片段。
語法
BOOL EvtRender(
[in] EVT_HANDLE Context,
[in] EVT_HANDLE Fragment,
[in] DWORD Flags,
[in] DWORD BufferSize,
[in] PVOID Buffer,
[out] PDWORD BufferUsed,
[out] PDWORD PropertyCount
);
參數
[in] Context
EvtCreateRenderContext 函式傳回之轉譯內容的句柄。 如果 Flags 參數設定為 EvtRenderEventXml 或 EvtRenderBookmark,則此參數必須設定為 NULL。
[in] Fragment
事件或書籤的句柄。 如果 Flags 參數設定為 EvtRenderBookmark,請將此參數設定為書籤句柄;否則,請將 設定為事件句柄。
[in] Flags
識別要呈現之內容的旗標。 例如,事件的完整事件或特定屬性。 如需可能的值,請參閱 EVT_RENDER_FLAGS 列舉。
[in] BufferSize
緩衝區的大小,以位元組為單位。
[in] Buffer
將接收轉譯輸出的呼叫端配置緩衝區。 如果 Flags 參數設定為 EvtRenderEventXml 或 EvtRenderBookmark,則內容為 Null 終止的 Unicode 字串。 否則,如果 Flags 設定為 EvtRenderEventValues,則緩衝區會包含 EVT_VARIANT 結構的陣列;一個用於轉譯內容所指定的每個屬性。 PropertyCount 參數包含數位中的元素數目。
您可以將此參數設定為 NULL ,以判斷所需的緩衝區大小。
[out] BufferUsed
如果函式因ERROR_INSUFFICIENT_BUFFER而失敗,則呼叫端配置緩衝區的大小,或是所需的緩衝區大小。
[out] PropertyCount
如果 Flags 參數設定為 EvtRenderEventValues,則 Buffer 參數中的屬性數目;否則為零。
傳回值
傳回碼/值 | Description |
---|---|
|
此函數已成功。 |
|
函式失敗。 呼叫 GetLastError 函式以取得錯誤碼。 |
備註
當您呼叫 EvtCreateRenderContext 函式時所指定的 XPath 運算式陣列與緩衝區中傳回的值數位之間有一對一關聯性。
當 EvtRender 函式中使用來自此函式的EVT_HANDLE時,該函式所傳回的值清單是由 EVT_VARIANT 結構的數位所組成,每個值都對應到原始 ValuePaths 參數數位中完全相同的其中一個 XPATH 表達式,依外觀順序。 每個這類 EVT_VARIANT 結構都包含其所對應 XPATH 運算式所識別之要轉譯之事件的值。 如果找不到任何值, EVT_VARIANT 結構會包含 NULL。 如果存在多個值, EVT_VARIANT 結構將包含遇到的第一個值。
比較 XPath 查詢中的浮點數時,請小心。 浮點數的任何字串表示法都是近似值,因此 XML 中顯示的值可能不符合與事件一起儲存的數位。 浮點數應該與小於或大於常數進行比較。
範例
如需示範如何使用此函式的範例,請參閱轉譯 事件 和 書籤事件。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows Vista [僅限傳統型應用程式] |
最低支援的伺服器 | Windows Server 2008 [僅限傳統型應用程式] |
目標平台 | Windows |
標頭 | winevt.h |
程式庫 | Wevtapi.lib |
Dll | Wevtapi.dll |