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

  • 如果已知由 WINVERNTDDI_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 1TraceLoggingSetInformation 将直接调用 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

另请参阅

TraceLoggingRegister

EventSetInformation

EVENT_INFO_CLASS