ReactOS  0.4.15-dev-3316-g067ca88
fxtelemetryum.hpp File Reference
#include "fxldrum.h"
Include dependency graph for fxtelemetryum.hpp:

Go to the source code of this file.

Classes

union  UFxTelemetryDriverInfo
 
struct  _UMDF_DRIVER_REGSITRY_INFO
 

Macros

#define UMDF_CENSUS_EVT_WRITE_DEVICE_START(TraceHandle, Globals, DriverConfig, SetupClass, BusEnum, HwID, Manafacturer)
 
#define TraceLoggingUmdfDriverConfigInfo(info, fieldName)
 

Typedefs

typedef struct _UMDF_DRIVER_REGSITRY_INFO UMDF_DRIVER_REGSITRY_INFO
 
typedef struct _UMDF_DRIVER_REGSITRY_INFOPUMDF_DRIVER_REGSITRY_INFO
 

Functions

VOID GetDriverInfo (_In_ FxDevice *Fdo, _In_ PUMDF_DRIVER_REGSITRY_INFO RegInfo, _Out_ UFxTelemetryDriverInfo *DriverInfo)
 

Macro Definition Documentation

◆ TraceLoggingUmdfDriverConfigInfo

#define TraceLoggingUmdfDriverConfigInfo (   info,
  fieldName 
)
Value:
\
TraceLoggingStruct(20, fieldName), \
\
TraceLoggingUInt8(info.bitmap.IsFilter, "IsFilter" ), \
TraceLoggingUInt8(info.bitmap.IsPowerPolicyOwner, "IsPowerPolicyOwner" ), \
TraceLoggingUInt8(info.bitmap.IsS0IdleWakeFromS0Enabled, "IsS0IdleWakeFromS0Enabled" ), \
TraceLoggingUInt8(info.bitmap.IsS0IdleUsbSSEnabled, "IsS0IdleUsbSSEnabled" ), \
TraceLoggingUInt8(info.bitmap.IsS0IdleSystemManaged, "IsS0IdleSystemManaged" ), \
\
TraceLoggingUInt8(info.bitmap.IsSxWakeEnabled, "IsSxWakeEnabled" ), \
TraceLoggingUInt8(info.bitmap.IsUsingLevelTriggeredLineInterrupt, "IsUsingLevelTriggeredLineInterrupt" ), \
TraceLoggingUInt8(info.bitmap.IsUsingEdgeTriggeredLineInterrupt, "IsUsingEdgeTriggeredLineInterrupt" ), \
TraceLoggingUInt8(info.bitmap.IsUsingMsiXOrSingleMsi22Interrupt, "IsUsingMsiXOrSingleMsi22Interrupt" ), \
TraceLoggingUInt8(info.bitmap.IsUsingMsi22MultiMessageInterrupt, "IsUsingMsi22MultiMessageInterrupt" ), \
\
TraceLoggingUInt8(info.bitmap.IsUsingMultipleInterrupt, "IsUsingMultipleInterrupt" ), \
TraceLoggingUInt8(info.bitmap.IsDirectHardwareAccessAllowed, "IsDirectHardwareAccessAllowed" ), \
TraceLoggingUInt8(info.bitmap.IsUsingUserModemappingAccessMode, "IsUsingUserModemappingAccessMode" ), \
TraceLoggingUInt8(info.bitmap.IsKernelModeClientAllowed, "IsKernelModeClientAllowed" ), \
TraceLoggingUInt8(info.bitmap.IsNullFileObjectAllowed, "IsNullFileObjectAllowed" ), \
\
TraceLoggingUInt8(info.bitmap.IsPoolingDisabled, "IsPoolingDisabled" ), \
TraceLoggingUInt8(info.bitmap.IsMethodNeitherActionCopy, "IsMethodNeitherActionCopy" ), \
TraceLoggingUInt8(info.bitmap.IsUsingDirectIoForReadWrite, "IsUsingDirectIoForReadWrite" ), \
TraceLoggingUInt8(info.bitmap.IsUsingDirectIoForIoctl, "IsUsingDirectIoForIoctl" ), \
TraceLoggingUInt8(info.bitmap.IsUsingDriverWppRecorder, "IsUsingDriverWppRecorder" ) \

Definition at line 57 of file fxtelemetryum.hpp.

◆ UMDF_CENSUS_EVT_WRITE_DEVICE_START

#define UMDF_CENSUS_EVT_WRITE_DEVICE_START (   TraceHandle,
  Globals,
  DriverConfig,
  SetupClass,
  BusEnum,
  HwID,
  Manafacturer 
)
Value:
TraceLoggingWrite(TraceHandle, \
"UmdfCensusEvtDeviceStart", \
TraceLoggingString((Globals)->Public.DriverName, "DriverServiceName"), \
TraceLoggingWideString(SetupClass, "SetupClass"), \
TraceLoggingWideString(BusEnum, "BusEnumerator"), \
TraceLoggingWideString(HwID, "HardwareId"), \
TraceLoggingWideString(Manafacturer, "ManufacturerString") \
);
CLIPBOARD_GLOBALS Globals
Definition: clipbrd.c:13
#define WDF_CENSUS_EVT_DATA_COMMON(FxGlobals)
Definition: fxtelemetry.hpp:48
#define WDF_TELEMETRY_EVT_KEYWORDS
#define TraceLoggingUmdfDriverConfigInfo(info, fieldName)
_Must_inspect_result_ _In_ PDRIVER_OBJECT _In_ PCUNICODE_STRING _In_opt_ PWDF_OBJECT_ATTRIBUTES _In_ PWDF_DRIVER_CONFIG DriverConfig
Definition: wdfdriver.h:213

Definition at line 41 of file fxtelemetryum.hpp.

Typedef Documentation

◆ PUMDF_DRIVER_REGSITRY_INFO

◆ UMDF_DRIVER_REGSITRY_INFO

Function Documentation

◆ GetDriverInfo()

VOID GetDriverInfo ( _In_ FxDevice Fdo,
_In_ PUMDF_DRIVER_REGSITRY_INFO  RegInfo,
_Out_ UFxTelemetryDriverInfo DriverInfo 
)

Definition at line 186 of file fxtelemetryum.cpp.

191 {
192  FxPkgPnp* pnpPkg;
193  USHORT devInfo = 0;
194  WDF_DEVICE_IO_TYPE readWritePreference;
195  WDF_DEVICE_IO_TYPE ioControlPreference;
196  UMDF_DRIVER_REGSITRY_INFO devRegInfo = {0};
197  PWSTR groupId = NULL;
198 
199  pnpPkg = (FxPkgPnp*)Fdo->GetFdoPkg();
200  devInfo = Fdo->GetDeviceTelemetryInfoFlags();
201  Fdo->GetDeviceStackIoType(&readWritePreference, &ioControlPreference);
202 
203  DriverInfo->bitmap.IsFilter = Fdo->IsFilter();
204  DriverInfo->bitmap.IsPowerPolicyOwner = pnpPkg->IsPowerPolicyOwner();
205  DriverInfo->bitmap.IsS0IdleWakeFromS0Enabled = pnpPkg->IsS0IdleWakeFromS0Enabled();
206  DriverInfo->bitmap.IsS0IdleUsbSSEnabled = pnpPkg->IsS0IdleUsbSSEnabled();
207  DriverInfo->bitmap.IsS0IdleSystemManaged = pnpPkg->IsS0IdleSystemManaged();
208  DriverInfo->bitmap.IsSxWakeEnabled = pnpPkg->IsSxWakeEnabled();
209  DriverInfo->bitmap.IsUsingLevelTriggeredLineInterrupt = IsDeviceInfoFlagSet(devInfo, DeviceInfoLineBasedLevelTriggeredInterrupt);
210  DriverInfo->bitmap.IsUsingEdgeTriggeredLineInterrupt = IsDeviceInfoFlagSet(devInfo, DeviceInfoLineBasedEdgeTriggeredInterrupt);
211  DriverInfo->bitmap.IsUsingMsiXOrSingleMsi22Interrupt = IsDeviceInfoFlagSet(devInfo, DeviceInfoMsiXOrSingleMsi22Interrupt);
212  DriverInfo->bitmap.IsUsingMsi22MultiMessageInterrupt = IsDeviceInfoFlagSet(devInfo, DeviceInfoMsi22MultiMessageInterrupt);
213  DriverInfo->bitmap.IsUsingMultipleInterrupt = pnpPkg->HasMultipleInterrupts();
214  DriverInfo->bitmap.IsDirectHardwareAccessAllowed = Fdo->IsDirectHardwareAccessAllowed();
215  DriverInfo->bitmap.IsUsingUserModemappingAccessMode = Fdo->AreRegistersMappedToUsermode();
216  DriverInfo->bitmap.IsKernelModeClientAllowed = RegInfo->IsKernelModeClientAllowed;
217  DriverInfo->bitmap.IsNullFileObjectAllowed = RegInfo->IsNullFileObjectAllowed;
218  DriverInfo->bitmap.IsPoolingDisabled = RegInfo->IsHostProcessSharingDisabled;
219  DriverInfo->bitmap.IsMethodNeitherActionCopy = RegInfo->IsMethodNeitherActionCopy;
220  DriverInfo->bitmap.IsUsingDirectIoForReadWrite = (readWritePreference == WdfDeviceIoDirect);
221  DriverInfo->bitmap.IsUsingDirectIoForIoctl = (ioControlPreference == WdfDeviceIoDirect);
222  DriverInfo->bitmap.IsUsingDriverWppRecorder = Fdo->GetDriver()->IsDriverObjectFlagSet(DriverObjectUmFlagsLoggingEnabled);
223 
224  return;
225 }
BOOLEAN IsS0IdleSystemManaged(VOID)
Definition: fxpkgpnp.hpp:3645
uint16_t * PWSTR
Definition: typedefs.h:56
enum _WDF_DEVICE_IO_TYPE WDF_DEVICE_IO_TYPE
_Must_inspect_result_ _In_ WDFDEVICE Fdo
Definition: wdffdo.h:461
BOOLEAN IsPowerPolicyOwner(VOID)
Definition: fxpkgpnp.hpp:3612
BOOLEAN HasMultipleInterrupts(VOID)
Definition: fxpkgpnp.hpp:4066
DRIVER_INFORMATION DriverInfo
Definition: main.c:59
unsigned short USHORT
Definition: pedump.c:61
#define NULL
Definition: types.h:112
BOOLEAN __inline IsDeviceInfoFlagSet(_In_ USHORT DeviceInfo, _In_ FxDeviceInfoFlags Flag)
BOOLEAN IsS0IdleWakeFromS0Enabled(VOID)
Definition: fxpkgpnp.hpp:3632
BOOLEAN IsS0IdleUsbSSEnabled(VOID)
Definition: fxpkgpnp.hpp:3658
BOOLEAN IsSxWakeEnabled(VOID)
Definition: fxpkgpnp.hpp:3672

Referenced by LogDriverInfoStream().