TraceLoggingProviderEnabled 函数 (traceloggingprovider.h)

TraceLogging 宏,用于确定是否有任何跟踪使用者正在侦听来自此提供程序的事件。

语法

TLG_PFORCEINLINE BOOLEAN TraceLoggingProviderEnabled(
  TraceLoggingHProvider hProvider,
  UCHAR                 eventLevel,
  ULONGLONG             eventKeyword
);

参数

hProvider

要检查的 TraceLogging 提供程序的句柄。

eventLevel

要检查的事件级别。 事件级别为 0 表示任何事件。

eventKeyword

要检查关键字 (keyword) 。 关键字 (keyword) 为 0 表示没有特定关键字。

返回值

如果任何跟踪使用者会话正在侦听与指定条件匹配的事件,则返回 TRUE ,否则 返回 FALSE

注解

此 API 提供了一种简单的方法来确定是否启用了事件,即任何事件使用者会话是否有兴趣从具有指定级别和关键字 (keyword) 的指定提供程序接收事件。

注意

此 API 执行保守的快速测试。 在某些情况下,此 API 可能会返回 true,在这些情况下,后续的深度筛选将确定没有会话实际需要记录事件。

大多数事件提供程序不会直接调用 TraceLoggingProviderEnabledTraceLoggingWrite 宏执行其自己的 TraceLoggingProviderEnabled 测试,如果未启用该事件,则立即返回 。 但是,提供程序在调用 TraceLoggingWrite 宏之前执行复杂的准备之前调用 TraceLoggingProviderEnabled 可能很有用。

示例

// Skip GetMyInformation() if nobody is listening for MyInformationEvent:
if (TraceLoggingProviderEnabled(MyProvider, MyEventLevel, MyEventKeyword))
{
    MY_INFORMATION info;
    GetMyInformation(&info);

    TraceLoggingWrite(
        MyProvider,
        "MyInformationEvent",
        TraceLoggingLevel(MyEventLevel),
        TraceLoggingKeyword(MyEventKeyword),
        TraceLoggingValue(info.Val1),
        TraceLoggingValue(info.Val2));
}

要求

要求
最低受支持的客户端 Windows Vista [桌面应用 | UWP 应用]
最低受支持的服务器 Windows Server 2008 [桌面应用 | UWP 应用]
标头 traceloggingprovider.h

另请参阅

TraceLoggingWrite

TraceLogging 包装宏

EventProviderEnabled