Поделиться через


Как уведомить драйвер при включении, отключении или изменении определенных флагов?

Некоторые драйверы должны выполнять дополнительную работу, если флаги трассировки включены, отключены или изменены. Чтобы уведомить драйвер при возникновении таких изменений, используйте следующую команду:

#define WPP_PRIVATE_ENABLE_CALLBACK 

Перед включением файла TMH необходимо определить эту символьную константу. Подпись функции, которую необходимо написать, выглядит следующим образом:

typedef
VOID
(*PFN_WPP_PRIVATE_ENABLE_CALLBACK)(
__in LPCGUID Guid,
__in __int64 Logger,
__in BOOLEAN Enable,
__in ULONG Flags,
__in UCHAR Level);

Ниже приведен пример уведомления драйвера о включении определенных флагов:

#define WPP_PRIVATE_ENABLE_CALLBACK MyOwnCallback
#include "tracedrv.tmh" // this is the file that will be auto-generated 
VOID MyOwnCallback (
                 __in LPCGUID Guid,
                 __in __int64 Logger,
                 __in BOOLEAN Enable,
                 __in ULONG Flags,
                 __in UCHAR Level) 
{
//                
//                  This callback function will be called with the current values of : GUID, Logger, Enable, Flags, and Level
//                 

                  if (Enable) {
                        .
                        .
                   }
}