ReactOS 0.4.15-dev-8145-ga541a46
fxtelemetryum.hpp
Go to the documentation of this file.
1/*++
2
3Copyright (c) Microsoft Corporation
4
5Module Name:
6
7 FxTelemetryUm.hpp
8
9Abstract:
10
11 This is header file for telemetry methods.
12
13Author:
14
15
16
17Environment:
18
19 User mode only
20
21Revision History:
22
23Notes:
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 {
116};
117
124
125VOID
130 );
unsigned char BOOLEAN
unsigned long DWORD
Definition: ntddk_ex.h:95
struct _UMDF_DRIVER_REGSITRY_INFO UMDF_DRIVER_REGSITRY_INFO
struct _UMDF_DRIVER_REGSITRY_INFO * PUMDF_DRIVER_REGSITRY_INFO
VOID GetDriverInfo(_In_ FxDevice *Fdo, _In_ PUMDF_DRIVER_REGSITRY_INFO RegInfo, _Out_ UFxTelemetryDriverInfo *DriverInfo)
#define _Out_
Definition: ms_sal.h:345
#define _In_
Definition: ms_sal.h:308
DRIVER_INFORMATION DriverInfo
Definition: main.c:59
struct UFxTelemetryDriverInfo::@4837 bitmap
_Must_inspect_result_ _In_ WDFDEVICE Fdo
Definition: wdffdo.h:461