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
:
- 如果已知由
WINVER
或NTDDI_VERSION
) 指定的 Windows (的目标版本支持 EventSetInformation ,则 TraceLoggingSetInformation 将直接调用 EventSetInformation。 - 否则, TraceLoggingSetInformation 将使用 GetProcAddress (用户模式) 或 MmGetSystemRoutineAddress (内核模式) 来查找和调用 EventSetInformation。 如果此操作失败, TraceLoggingSetInformation 将返回
HRESULT_FROM_WIN32(ERROR_NOT_SUPPORTED)
(用户模式) 或STATUS_NOT_SUPPORTED
(内核模式) 。
若要重写此函数的默认行为,请在 TLG_HAVE_EVENT_SET_INFORMATION
#include <TraceLoggingProvider.h>
之前定义 宏:
- 如果
#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 (用户模式) 或 MmGetSystemRoutineAddress (内核模式) 调用 EventSetInformation。
有关其他信息,请参阅 标头中 TraceLoggingProvider.h
有关宏的 TLG_HAVE_EVENT_SET_INFORMATION
注释。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows Vista [桌面应用 | UWP 应用] |
最低受支持的服务器 | Windows Server 2008 [桌面应用 | UWP 应用] |
标头 | traceloggingprovider.h |
Library | Advapi32.lib |