EtwEnableCallback 函数是一个可选的驱动程序提供的回调函数,用于接收启用或禁用通知。
语法
ETWENABLECALLBACK Etwenablecallback;
VOID Etwenablecallback(
[in] LPCGUID SourceId,
ULONG ControlCode,
[in] UCHAR Level,
[in] ULONGLONG MatchAnyKeyword,
[in] ULONGLONG MatchAllKeyword,
[in, optional] PEVENT_FILTER_DESCRIPTOR FilterData,
[in, out, optional] PVOID CallbackContext
)
{...}
参数
[in] SourceId
标识启用提供程序的会话的 GUID。
ControlCode
[in] Level
启用事件的级别。 此参数是提供程序定义的值,指定提供程序写入的事件的详细程度。 如果此值小于或等于事件定义的级别值,则提供程序必须写入事件。
此值在 EnableTraceEx 函数的 Level 参数或 EnableTrace 函数的 EnableLevel 参数中传递。
[in] MatchAnyKeyword
提供程序用于确定其写入的事件类别的关键字的位掩码。
此值在 EnableTraceEx 函数的 MatchAnyKeyword 参数或 EnableTrace 函数的 EnableFlag 参数中传递。 MatchAnyKeyword 是一个 64 位值,基本上是 32 位 EnableFlag的扩展版本。
[in] MatchAllKeyword
此位掩码还限制提供程序写入的事件类别。
此值在 EnableTraceEx 函数的 MatchAllKeywords 参数中传递。
[in, optional] FilterData
提供程序定义的数据。 此参数是可选的。 提供程序确定数据的布局及其用途。 例如,提供程序可以使用此数据来额外筛选它写入的事件,或使用这些数据在写入事件之前执行某些计算。 有关详细信息,请参阅 事件筛选器描述符。
[in, out, optional] CallbackContext
提供程序调用 EtwRegister 注册自身时定义的回调函数的上下文。 此参数是可选的。
返回值
没有
言论
使用 EtwRegister 函数指定指向 EtwEnableCallback 函数的指针。
使用回调函数的 FilterData 参数为提供程序提供复杂的筛选功能。 EtwEnableCallback 函数不会替换启用状态函数调用(EtwEventEnabled 和 EtwProviderEnabled)。 然而,它作为它们的补充。 但是,除非当前启用了级别和关键字,否则不会写入该事件,而不考虑回调函数提供的 FilterData。
EtwEnableCallback 的调用方必须在系统线程的上下文中在 IRQL = PASSIVE_LEVEL运行。
要求
| 要求 | 价值 |
|---|---|
| 最低支持的客户端 | 在 Windows Vista 和更高版本的 Windows 中可用。 |
| 目标平台 | 桌面 |
| 标头 | wdm.h (包括 Wdm.h、Ntddk.h) |
| IRQL | PASSIVE_LEVEL |