1 /*++ 2 3 Copyright (c) Microsoft Corporation. All rights reserved. 4 5 Module Name: 6 7 Fx.hpp 8 9 Abstract: 10 11 This is the main driver framework include file. 12 13 Author: 14 WDF team 15 16 Environment: 17 18 kernel mode only 19 20 Revision History: 21 22 --*/ 23 24 #ifndef _FX_H 25 #define _FX_H 26 27 extern "C" { 28 #include "mx.h" 29 } 30 31 #include "fxmacros.hpp" 32 33 extern "C" { 34 #include "wdf.h" 35 // #include "wdmsec.h" 36 #include "wdmguid.h" 37 38 // #include "wdfdevicepri.h" 39 // #include "wdfiotargetpri.h" 40 #include "wdfcx.h" 41 #include "wdfldr.h" 42 43 #include <fxdynamicswrapper.h> 44 45 #include "wdf10.h" 46 #include "wdf11.h" 47 #include "wdf15.h" 48 #include "wdf17.h" 49 #include "wdf19.h" 50 #include "wdf111.h" 51 #include "wdf113.h" 52 #include "wdf115.h" 53 } 54 55 #define KMDF_ONLY_CODE_PATH_ASSERT() 56 57 // Integer overflow functions 58 #include "ntintsafe.h" 59 60 #include "fxforward.hpp" 61 62 //KMDF defines for shared type names 63 #include "fxtypedefskm.hpp" 64 65 // #include "fxwmicompat.h" 66 // #include "fxtrace.h" 67 #if defined(EVENT_TRACING) 68 #include "fxwmicompat.h" 69 #include "fxtrace.h" 70 #else 71 #include "dbgtrace.h" 72 #endif // EVENT_TRACING 73 #include "fxtypes.h" 74 #include "fxrequestcontexttypes.h" 75 #include "fxpool.h" 76 #include "fxglobalskm.h" 77 #include "fxpoolinlines.hpp" 78 #include "fxverifier.h" 79 #include "fxverifierkm.h" 80 #include "fxmdl.h" 81 #include "fxprobeandlock.h" 82 83 #include "fxperftracekm.hpp" 84 // #include "DriverFrameworks-KernelMode-KmEvents.h" 85 86 #include <ntstrsafe.h> 87 88 #include "fxstump.hpp" 89 90 #include "fxrequestbuffer.hpp" 91 92 #include "fxtagtracker.hpp" 93 94 // internal locks 95 #include "fxverifierlock.hpp" 96 #include "fxlock.hpp" 97 98 // base objects 99 #include "fxobject.hpp" 100 #include "fxpagedobject.hpp" 101 #include "fxnonpagedobject.hpp" 102 103 #include "fxhandle.h" 104 105 // external locks 106 #include "fxwaitlock.hpp" 107 #include "fxspinlock.hpp" 108 109 // utitilty classes and functions 110 #include "fxtransactionedlist.hpp" 111 #include "fxrelateddevicelist.hpp" 112 #include "fxdisposelist.hpp" 113 #include "fxcollection.hpp" 114 #include "stringutil.hpp" 115 116 // abstract classes 117 #include "ifxhascallbacks.hpp" 118 119 // callback delegation and locking 120 #include "fxsystemthread.hpp" 121 #include "fxsystemworkitem.hpp" 122 #include "fxcallbacklock.hpp" 123 #include "fxcallbackspinlock.hpp" 124 #include "fxcallbackmutexlock.hpp" 125 #include "fxcallback.hpp" 126 #include "fxsystemthread.hpp" 127 128 #include "ifxmemory.hpp" 129 #include "fxlookasidelist.hpp" 130 #include "fxnpagedlookasidelist.hpp" 131 #include "fxpagedlookasidelist.hpp" 132 #include "fxmemoryobject.hpp" 133 #include "fxmemorybuffer.hpp" 134 #include "fxmemorybufferfrompool.hpp" 135 #include "fxmemorybufferpreallocated.hpp" 136 #include "fxmemorybufferfromlookaside.hpp" 137 #include "fxrequestmemory.hpp" 138 #include "fxregkey.hpp" 139 #include "fxautoregistry.hpp" 140 #include "fxautostring.hpp" 141 #include "fxstring.hpp" 142 143 #include "fxvalidatefunctions.hpp" 144 #include "fxrequestvalidatefunctions.hpp" 145 146 #include "fxresource.hpp" 147 #include "fxrelateddevice.hpp" 148 #include "fxdeviceinterface.hpp" 149 #include "fxqueryinterface.hpp" 150 #include "fxdevicetext.hpp" 151 152 #include "fxirp.hpp" 153 #include "fxdriver.hpp" 154 155 // generic package interface 156 #include "fxpackage.hpp" 157 #include "fxpkggeneral.hpp" 158 #include "fxdefaultirphandler.hpp" 159 #include "fxpkgpnp.hpp" 160 #include "fxwatchdog.hpp" 161 162 // Device support 163 #include "fxchildlist.hpp" 164 #include "fxcxdeviceinfo.hpp" 165 #include "fxdevice.hpp" 166 167 #include "fxpkgio.hpp" 168 169 #include "fxdevicetomxinterface.hpp" 170 171 #include "fxirpqueue.hpp" 172 #include "fxrequestcontext.hpp" 173 #include "fxrequestcallbacks.hpp" 174 #include "fxrequestbase.hpp" 175 #include "fxrequest.hpp" 176 #include "fxsyncrequest.hpp" 177 178 // specialized irp handlers (ie packages) 179 #include "fxpkgfdo.hpp" 180 #include "fxpkgpdo.hpp" 181 #include "fxwmiirphandler.hpp" 182 #include "fxwmiprovider.hpp" 183 #include "fxwmiinstance.hpp" 184 185 // queus for read, write, (internal) IOCTL 186 #include "fxioqueue.hpp" 187 #include "fxfileobject.hpp" 188 #include "fxirppreprocessinfo.hpp" 189 #include "fxirpdynamicdispatchinfo.hpp" 190 191 #include "fxdpc.hpp" 192 #include "fxworkitem.hpp" 193 #include "fxtimer.hpp" 194 #include "fxinterruptkm.hpp" 195 196 // IO targets (device lower edge interface) 197 #include "fxiotarget.hpp" 198 #include "fxiotargetremote.hpp" 199 #include "fxiotargetself.hpp" 200 201 #include "fxusbdevice.hpp" 202 #include "fxusbinterface.hpp" 203 #include "fxusbpipe.hpp" 204 205 // DMA support 206 #include "fxdmaenabler.hpp" 207 #include "fxdmatransaction.hpp" 208 #include "fxcommonbuffer.hpp" 209 210 // Triage info. 211 // #include "wdftriage.h" 212 213 #include "fxtelemetry.hpp" 214 #endif // _FX_H 215