108{
112
117
120
122
123
124
125
126
127
129
132
134
136 }
137
139
140
141
142
143
145
147
148
149
150
151
153
155
156
157
158
159
161
163
165 }
166
168
170
171
172
173
174
175
176
178
179#if (NTDDI_VERSION >= NTDDI_WIN8)
180
181
182
183
184
185
186
190
191
192
193
194
195
196
199 0,
203 }
204#endif
205
206
207
208
209
210
212 ) {
213
217
218 }
219
220
221
222
223
229
230
231
232
233
234
235
236
237
238
239
240 if( CloseContext ==
NULL ) {
241
242
243
244
245
246
248
249 CloseContext = &
Ccb->CloseContext;
251
253 }
254
255
256
257
258
259
260
261
265
266
267
268
269
270
271 FatQueueClose( CloseContext,
273
274 } else {
275
276
277
278
279
280
284 ) {
285
286 if (CloseContext !=
NULL) {
287
289
290 }
291 }
292 }
293
295
296 }
298
299
300
301
302
303
304
307
309
311
312
313
314
315
317
319
321}
static PIO_STACK_LOCATION IoGetCurrentIrpStackLocation(PIRP Irp)
_Inout_ PFILE_OBJECT _In_ TYPE_OF_OPEN TypeOfOpen
_Inout_ PFILE_OBJECT _In_ TYPE_OF_OPEN PFCB _In_opt_ PCCB Ccb
enum _TYPE_OF_OPEN TYPE_OF_OPEN
_In_ PIO_STACK_LOCATION IrpSp
ULONG FatExceptionFilter(IN PIRP_CONTEXT IrpContext, IN PEXCEPTION_POINTERS ExceptionPointer)
BOOLEAN FatIsIrpTopLevel(IN PIRP Irp)
#define DebugTrace(INDENT, LEVEL, X, Y)
#define IsFileObjectReadOnly(FO)
TYPE_OF_OPEN FatDecodeFileObject(_In_ PFILE_OBJECT FileObject, _Outptr_ PVCB *Vcb, _Outptr_ PFCB *FcbOrDcb, _Outptr_ PCCB *Ccb)
IN PFCB IN PCCB IN TYPE_OF_OPEN IN BOOLEAN IN BOOLEAN TopLevel
#define FatCompleteRequest(IRPCONTEXT, IRP, STATUS)
#define FatDeviceIsFatFsdo(D)
VOID FatDeallocateCcbStrings(IN PCCB Ccb)
#define FatGetFcbOplock(F)
#define FatIsFileOplockable(F)
PCLOSE_CONTEXT FatAllocateCloseContext(IN PVCB Vcb)
#define CCB_FLAG_READ_ONLY
#define CCB_FLAG_CLOSE_CONTEXT
#define FCB_STATE_DELAY_CLOSE
#define FsRtlEnterFileSystem
#define FsRtlExitFileSystem
#define UNREFERENCED_PARAMETER(P)
#define IoCompleteRequest
VOID NTAPI IoSetTopLevelIrp(IN PIRP Irp)
#define _SEH2_GetExceptionCode()
#define _SEH2_EXCEPT(...)
#define _SEH2_GetExceptionInformation()
enum _TYPE_OF_OPEN TypeOfOpen
_In_ WDFREQUEST _In_ WDFFILEOBJECT FileObject
_In_ WDFDPC _In_ BOOLEAN Wait
#define FO_CLEANUP_COMPLETE
#define IO_DISK_INCREMENT
#define PsGetCurrentProcess