/*++ Copyright (c) Microsoft Corporation Module Name: FxTrace.h Abstract: This module contains the private tracing definitions Author: Environment: Both kernel and user mode Revision History: --*/ #ifndef _FXTRACE_H_ #define _FXTRACE_H_ typedef struct _WDF_DRIVER_CONFIG *PWDF_DRIVER_CONFIG; /** * Tracing Definitions: */ #if FX_CORE_MODE == FX_CORE_KERNEL_MODE #define WDF_FX_TRACE_WPPGUID (544d4c9d,942c,46d5,bf50,df5cd9524a50) #elif FX_CORE_MODE == FX_CORE_USER_MODE #define WDF_FX_TRACE_WPPGUID (485e7de9,0a80,11d8,ad15,505054503030) #endif #define WDF_FRAMEWORKS_TRACE_FLAGS \ WPP_DEFINE_WDF_CONTROL_GUID( \ KmdfTraceGuid, \ WDF_FX_TRACE_WPPGUID, \ WPP_DEFINE_BIT(TRACINGFULL) \ WPP_DEFINE_BIT(TRACINGERROR) \ WPP_DEFINE_BIT(TRACINGDBGPRINT) \ WPP_DEFINE_BIT(TRACINGFRAMEWORKS) \ WPP_DEFINE_BIT(TRACINGAPI) \ WPP_DEFINE_BIT(TRACINGAPIERROR) \ WPP_DEFINE_BIT(TRACINGRESOURCES) \ WPP_DEFINE_BIT(TRACINGLOCKING) \ WPP_DEFINE_BIT(TRACINGCONTEXT) \ WPP_DEFINE_BIT(TRACINGPOOL) \ WPP_DEFINE_BIT(TRACINGHANDLE) \ WPP_DEFINE_BIT(TRACINGPNP) \ WPP_DEFINE_BIT(TRACINGIO) \ WPP_DEFINE_BIT(TRACINGIOTARGET) \ WPP_DEFINE_BIT(TRACINGDMA) \ WPP_DEFINE_BIT(TRACINGREQUEST) \ WPP_DEFINE_BIT(TRACINGDRIVER) \ WPP_DEFINE_BIT(TRACINGDEVICE) \ WPP_DEFINE_BIT(TRACINGUSEROBJECT) \ WPP_DEFINE_BIT(TRACINGOBJECT) \ WPP_DEFINE_BIT(TRACINGPNPPOWERSTATES) \ ) #define WPP_CONTROL_GUIDS \ WDF_FRAMEWORKS_TRACE_FLAGS //#define WPP_DEBUG(args) DbgPrint args , DbgPrint("\n") #define WPP_GLOBALS_LEVEL_FLAGS_LOGGER(globals,lvl,flags) WPP_LEVEL_LOGGER(flags) #define WPP_GLOBALS_LEVEL_FLAGS_ENABLED(globals,lvl,flags) (WPP_LEVEL_ENABLED(flags) && WPP_CONTROL(WPP_BIT_ ## flags).Level >= lvl) #define IFR_GLOBALS_LEVEL_FLAGS_FILTER(globals,lvl,flags) (lvl < TRACE_LEVEL_VERBOSE || globals->FxVerboseOn) // // These are pure enums (one and only one value) // // begin_wpp config // CUSTOM_TYPE(WdfDmaEnablerCallback, ItemListLong(FxEvtDmaEnablerInvalid,FxEvtDmaEnablerFill,FxEvtDmaEnablerFlush,FxEvtDmaEnablerEnable,FxEvtDmaEnablerDisable,FxEvtDmaEnablerSelfManagedIoStart,FxEvtDmaEnablerSelfManagedIoStop),"s"); // CUSTOM_TYPE(IRPMJ, ItemListByte(IRP_MJ_CREATE,IRP_MJ_CREATE_NAMED_PIPE,IRP_MJ_CLOSE,IRP_MJ_READ,IRP_MJ_WRITE,IRP_MJ_QUERY_INFORMATION,IRP_MJ_SET_INFORMATION,IRP_MJ_QUERY_EA,IRP_MJ_SET_EA,IRP_MJ_FLUSH_BUFFERS,IRP_MJ_QUERY_VOLUME_INFORMATION,IRP_MJ_SET_VOLUME_INFORMATION,IRP_MJ_DIRECTORY_CONTROL,IRP_MJ_FILE_SYSTEM_CONTROL,IRP_MJ_DEVICE_CONTROL,IRP_MJ_INTERNAL_DEVICE_CONTROL,IRP_MJ_SHUTDOWN,IRP_MJ_LOCK_CONTROL,IRP_MJ_CLEANUP,IRP_MJ_CREATE_MAILSLOT,IRP_MJ_QUERY_SECURITY,IRP_MJ_SET_SECURITY,IRP_MJ_POWER,IRP_MJ_SYSTEM_CONTROL,IRP_MJ_DEVICE_CHANGE,IRP_MJ_QUERY_QUOTA,IRP_MJ_SET_QUOTA,IRP_MJ_PNP)); // end_wpp _Must_inspect_result_ NTSTATUS FxTraceInitialize( VOID ); VOID TraceUninitialize( VOID ); VOID FxIFRStart( __in PFX_DRIVER_GLOBALS FxDriverGlobals, __in PCUNICODE_STRING RegistryPath, __in MdDriverObject DriverObject ); VOID FxIFRStop( __in PFX_DRIVER_GLOBALS FxDriverGlobals ); #endif // _FXTRACE_H