TdhGetProperty 函式 (tdh.h)
從事件數據擷取屬性值。
語法
TDHSTATUS TdhGetProperty(
[in] PEVENT_RECORD pEvent,
[in] ULONG TdhContextCount,
[in] PTDH_CONTEXT pTdhContext,
[in] ULONG PropertyDataCount,
[in] PPROPERTY_DATA_DESCRIPTOR pPropertyData,
[in] ULONG BufferSize,
[out] PBYTE pBuffer
);
參數
[in] pEvent
傳遞至 EventRecordCallback 回呼的事件 記錄。 如需詳細資訊,請參閱 EVENT_RECORD 結構。
[in] TdhContextCount
pTdhContext 中的元素數目。
[in] pTdhContext
僅限 WPP 或傳統 ETW 事件的內容值陣列;否則為 NULL。 如需詳細資訊,請參閱 TDH_CONTEXT 結構。 陣列不得包含重複的內容類型。
[in] PropertyDataCount
pPropertyData 中的數據描述元結構數目。
[in] pPropertyData
定義要擷取之屬性 之PROPERTY_DATA_DESCRIPTOR 結構的陣列。
如果您呼叫 TdhGetPropertySize 函式來擷取屬性所需的緩衝區大小,您可以使用相同的數據描述元。
如果您要擷取不是結構成員的屬性,您可以指定單一數據描述元。 如果您要擷取結構成員的屬性,請指定兩個數據描述元的陣列, (結構不能包含或參考其他結構) 。
[in] BufferSize
pBuffer 緩衝區的大小,以位元組為單位。 呼叫 TdhGetPropertySize 函式時,您可以從 pPropertySize 參數取得此值。
[out] pBuffer
接收屬性數據的使用者配置緩衝區。
傳回值
如果成功,則傳回ERROR_SUCCESS。 否則,此函式除了傳回其他傳回碼之外,還會傳回下列其中一個傳回碼。
傳回碼 | Description |
---|---|
|
找不到事件的架構,或找不到指定的屬性。 |
|
pBuffer 緩衝區太小。 若要取得所需的緩衝區大小,請呼叫 TdhGetPropertySize。 |
|
一或多個參數無效。 |
|
指令清單中的 resourceFileName 屬性包含提供者二進位檔的位置。 當您註冊指令清單時,位置會寫入登錄。 TDH 無法根據已註冊的位置找到二進位檔。 |
|
無法使用 WMI 服務。 |
備註
如果事件是 WPP 或傳統 ETW 事件,您可以指定用來協助剖析事件資訊的內容資訊。 如果EVENT_HEADER_FLAG_TRACE_MESSAGE旗標是在 EVENT_HEADER 的 Flags 成員中設定,則此事件為 WPP 事件, ( 請參閱 EVENT_RECORD) 的 EventHeader 成員。 如果已設定EVENT_HEADER_FLAG_CLASSIC_HEADER旗標,則此事件是舊版 ETW 事件。
如需 WPP 事件及其資料類型的屬性清單,請參閱 PROPERTY_DATA_DESCRIPTOR。
範例
如需示範如何呼叫此函式以擷取最上層屬性或結構成員值的範例,請參閱 使用 TdhGetProperty 取用事件數據。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows Vista [僅限傳統型應用程式] |
最低支援的伺服器 | Windows Server 2008 [僅限傳統型應用程式] |
目標平台 | Windows |
標頭 | tdh.h |
程式庫 | Tdh.lib |
Dll | Tdh.dll |