TraceLoggingSetInformation 函式 (traceloggingprovider.h)
呼叫 EventSetInformation 來設定 TraceLogging 提供者。
語法
TLG_STATUS TraceLoggingSetInformation(
TraceLoggingHProvider hProvider,
EVENT_INFO_CLASS informationClass,
PVOID pvInformation,
ULONG cbInformation
);
參數
hProvider
要設定之 TraceLogging 提供者的句柄。 提供者必須處於 已註冊 狀態。
informationClass
要設定之設定 的EVENT_INFO_CLASS 。
pvInformation
具有要設定之設定值的輸入緩衝區。 這個緩衝區的格式取決於 informationClass 參數的值。
cbInformation
輸入緩衝區中數據的大小,以位元組為單位。
傳回值
如果您從使用者模式程式代碼呼叫此函式,函式會傳 HRESULT
回 。 SUCCEEDED()
使用宏來判斷函式是否成功。
如果您從內核模式程式代碼呼叫此函式,函式會 NTSTATUS
傳回 。 NT_SUCCESS()
使用宏來判斷函式是否成功。
備註
此函式可作為 EventSetInformation 函式的包裝函式。
EventSetInformation 函式不適用於所有版本的 Windows。 TraceLoggingSetInformation 的預設行為取決於 (使用者模式) 或 NTDDI_VERSION
(內核模式) 宏的編譯時間值WINVER
:
- 如果或
NTDDI_VERSION
) 已知WINVER
支援 EventSetInformation 的目標 Windows (版本,TraceLoggingSetInformation 會直接叫用 EventSetInformation。 - 否則 ,TraceLoggingSetInformation 會使用 GetProcAddress (使用者模式) 或 MmGetSystemRoutineAddress (kernel-mode) 來尋找及叫用 EventSetInformation。 如果失敗, TraceLoggingSetInformation 會傳回
HRESULT_FROM_WIN32(ERROR_NOT_SUPPORTED)
(使用者模式) 或STATUS_NOT_SUPPORTED
(內核模式) 。
若要覆寫此函式的預設行為,請在之前#include <TraceLoggingProvider.h>
定義TLG_HAVE_EVENT_SET_INFORMATION
宏:
- 如果您
#define TLG_HAVE_EVENT_SET_INFORMATION 0
接著 TraceLoggingSetInformation 不會執行任何動作,並傳回HRESULT_FROM_WIN32(ERROR_NOT_SUPPORTED)
(使用者模式) 或STATUS_ENTRYPOINT_NOT_FOUND
(內核模式) 。 - 如果您
#define TLG_HAVE_EVENT_SET_INFORMATION 1
接著 TraceLoggingSetInformation 會直接叫用 EventSetInformation。 - 如果您
#define TLG_HAVE_EVENT_SET_INFORMATION 2
接著 TraceLoggingSetInformation 會透過 GetProcAddress 叫用 EventSetInformation (使用者模式) 或 MmGetSystemRoutineAddress (內核模式) 。
如需詳細資訊,請參閱標頭中有關宏的TraceLoggingProvider.h
TLG_HAVE_EVENT_SET_INFORMATION
批註。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows Vista [傳統型應用程式 |UWP 應用程式] |
最低支援的伺服器 | Windows Server 2008 [傳統型應用程式 |UWP 應用程式] |
標頭 | traceloggingprovider.h |
程式庫 | Advapi32.lib |