xref: /reactos/sdk/lib/drivers/wdf/kmdf/inc/private/fx.hpp (revision 9393fc32)
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