ReactOS  0.4.15-dev-3324-gda4e15f
fxtelemetryum.hpp
Go to the documentation of this file.
1 /*++
2 
3 Copyright (c) Microsoft Corporation
4 
5 Module Name:
6 
7  FxTelemetryUm.hpp
8 
9 Abstract:
10 
11  This is header file for telemetry methods.
12 
13 Author:
14 
15 
16 
17 Environment:
18 
19  User mode only
20 
21 Revision History:
22 
23 Notes:
24 
25 --*/
26 
27 #pragma once
28 
29 #include "fxldrum.h"
30 
31 //
32 // Event name: UmdfCensusEvtDeviceStart
33 //
34 // Source: Mode agnostic (UMDF and KMDF)
35 //
36 // Description: Written when a FDO completes start successfully.
37 //
38 // Frequency: If FX_TELEMETRY_ENABLED, once per driver session. This is tracked using the
39 // DoOnceFlag in the telemetry context.
40 //
41 #define UMDF_CENSUS_EVT_WRITE_DEVICE_START(TraceHandle , Globals, DriverConfig, SetupClass, BusEnum, HwID, Manafacturer) \
42  TraceLoggingWrite(TraceHandle, \
43  "UmdfCensusEvtDeviceStart", \
44  WDF_TELEMETRY_EVT_KEYWORDS, \
45  WDF_CENSUS_EVT_DATA_COMMON(Globals), \
46  TraceLoggingString((Globals)->Public.DriverName, "DriverServiceName"), \
47  TraceLoggingUmdfDriverConfigInfo(DriverConfig, "DriverConfigInfo"), \
48  TraceLoggingWideString(SetupClass, "SetupClass"), \
49  TraceLoggingWideString(BusEnum, "BusEnumerator"), \
50  TraceLoggingWideString(HwID, "HardwareId"), \
51  TraceLoggingWideString(Manafacturer, "ManufacturerString") \
52  );
53 
54 //
55 // This is part of the data for UmdfCensusEvtDeviceStart event.
56 //
57 #define TraceLoggingUmdfDriverConfigInfo(info, fieldName) \
58  \
59  TraceLoggingStruct(20, fieldName), \
60  \
61  TraceLoggingUInt8(info.bitmap.IsFilter, "IsFilter" ), \
62  TraceLoggingUInt8(info.bitmap.IsPowerPolicyOwner, "IsPowerPolicyOwner" ), \
63  TraceLoggingUInt8(info.bitmap.IsS0IdleWakeFromS0Enabled, "IsS0IdleWakeFromS0Enabled" ), \
64  TraceLoggingUInt8(info.bitmap.IsS0IdleUsbSSEnabled, "IsS0IdleUsbSSEnabled" ), \
65  TraceLoggingUInt8(info.bitmap.IsS0IdleSystemManaged, "IsS0IdleSystemManaged" ), \
66  \
67  TraceLoggingUInt8(info.bitmap.IsSxWakeEnabled, "IsSxWakeEnabled" ), \
68  TraceLoggingUInt8(info.bitmap.IsUsingLevelTriggeredLineInterrupt, "IsUsingLevelTriggeredLineInterrupt" ), \
69  TraceLoggingUInt8(info.bitmap.IsUsingEdgeTriggeredLineInterrupt, "IsUsingEdgeTriggeredLineInterrupt" ), \
70  TraceLoggingUInt8(info.bitmap.IsUsingMsiXOrSingleMsi22Interrupt, "IsUsingMsiXOrSingleMsi22Interrupt" ), \
71  TraceLoggingUInt8(info.bitmap.IsUsingMsi22MultiMessageInterrupt, "IsUsingMsi22MultiMessageInterrupt" ), \
72  \
73  TraceLoggingUInt8(info.bitmap.IsUsingMultipleInterrupt, "IsUsingMultipleInterrupt" ), \
74  TraceLoggingUInt8(info.bitmap.IsDirectHardwareAccessAllowed, "IsDirectHardwareAccessAllowed" ), \
75  TraceLoggingUInt8(info.bitmap.IsUsingUserModemappingAccessMode, "IsUsingUserModemappingAccessMode" ), \
76  TraceLoggingUInt8(info.bitmap.IsKernelModeClientAllowed, "IsKernelModeClientAllowed" ), \
77  TraceLoggingUInt8(info.bitmap.IsNullFileObjectAllowed, "IsNullFileObjectAllowed" ), \
78  \
79  TraceLoggingUInt8(info.bitmap.IsPoolingDisabled, "IsPoolingDisabled" ), \
80  TraceLoggingUInt8(info.bitmap.IsMethodNeitherActionCopy, "IsMethodNeitherActionCopy" ), \
81  TraceLoggingUInt8(info.bitmap.IsUsingDirectIoForReadWrite, "IsUsingDirectIoForReadWrite" ), \
82  TraceLoggingUInt8(info.bitmap.IsUsingDirectIoForIoctl, "IsUsingDirectIoForIoctl" ), \
83  TraceLoggingUInt8(info.bitmap.IsUsingDriverWppRecorder, "IsUsingDriverWppRecorder" ) \
84 
85 //
86 // bit-map for driver info stream
87 //
88 // When changing the structure, do update TraceLoggingUmdfDriverConfigInfo
89 // for fields name and TraceLoggingStruct(count) as well. It is good to keep
90 // fields order the same but it is not required.
91 //
93  struct {
114  } bitmap;
116 };
117 
124 
125 VOID
127  _In_ FxDevice* Fdo,
130  );
#define _Out_
Definition: ms_sal.h:345
struct _UMDF_DRIVER_REGSITRY_INFO UMDF_DRIVER_REGSITRY_INFO
unsigned char BOOLEAN
#define _In_
Definition: ms_sal.h:308
VOID GetDriverInfo(_In_ FxDevice *Fdo, _In_ PUMDF_DRIVER_REGSITRY_INFO RegInfo, _Out_ UFxTelemetryDriverInfo *DriverInfo)
unsigned long DWORD
Definition: ntddk_ex.h:95
_Must_inspect_result_ _In_ WDFDEVICE Fdo
Definition: wdffdo.h:461
struct _UMDF_DRIVER_REGSITRY_INFO * PUMDF_DRIVER_REGSITRY_INFO
DRIVER_INFORMATION DriverInfo
Definition: main.c:59
struct UFxTelemetryDriverInfo::@4588 bitmap