150{
155
159
161
162
163
164
165
167
171
172
173
174
175
176
178
180
183 }
184
185
186
187
188
190
192
193
194
195
196
197
198
199
202
203 FatFlushAndCleanVolume( IrpContext,
207
210
211
212
213
214
216
217
218
219
220
227 break;
228
230
231
232
233
234
235
236
237
241
245
248 }
249
250 break;
251
256
257
258
259
260
261
262
265 (
Irp->AssociatedIrp.SystemBuffer !=
NULL)) {
266
268
269
270
271
272
273
274#if defined (_WIN64) && defined(BUILD_WOW64_ENABLED)
275 if (IoIs32bitProcess(
Irp)) {
276
279
281
282 Cdb = (
PCDB)((PSCSI_PASS_THROUGH32)(
Irp->AssociatedIrp.SystemBuffer))->Cdb;
283 }
284 } else {
285
287
288 Cdb = (
PCDB)((PSCSI_PASS_THROUGH32_EX)(
Irp->AssociatedIrp.SystemBuffer))->Cdb;
289 }
290 }
291
292 } else {
293#endif
296
298
300 }
301 } else {
302
304
306 }
307 }
308
309#if defined (_WIN64) && defined(BUILD_WOW64_ENABLED)
310 }
311#endif
312
314
317 }
318 }
319
320
321
322
323
324 default:
325
326
327
328
329
331 break;
332 }
333
334
335
336
337
339
341
347
349 }
350
351
352
353
354
355
357
358
359
360
361
362
364
366
367
368
369
370
371 } else {
372
374 }
375
377
379
381}
static PIO_STACK_LOCATION IoGetCurrentIrpStackLocation(PIRP Irp)
_Inout_ PFILE_OBJECT _In_ TYPE_OF_OPEN PFCB _In_opt_ PCCB Ccb
#define SCSIOP_FORMAT_UNIT
#define IRP_CONTEXT_FLAG_WAIT
_In_ PIO_STACK_LOCATION IrpSp
#define KeWaitForSingleObject(pEvt, foo, a, b, c)
#define KeInitializeEvent(pEvt, foo, foo2)
#define FatAcquireExclusiveVolume(IRPCONTEXT, VCB)
TYPE_OF_OPEN FatDecodeFileObject(_In_ PFILE_OBJECT FileObject, _Outptr_ PVCB *Vcb, _Outptr_ PFCB *FcbOrDcb, _Outptr_ PCCB *Ccb)
#define FatReleaseVolume(IRPCONTEXT, VCB)
#define FatCompleteRequest(IRPCONTEXT, IRP, STATUS)
#define VCB_STATE_FLAG_LOCKED
#define CCB_FLAG_SENT_FORMAT_UNIT
#define CCB_FLAG_COMPLETE_DISMOUNT
IO_COMPLETION_ROUTINE FatDeviceControlCompletionRoutine
#define IoSetCompletionRoutine(_Irp, _CompletionRoutine, _Context, _InvokeOnSuccess, _InvokeOnError, _InvokeOnCancel)
#define IOCTL_DISK_COPY_DATA
#define IOCTL_VOLSNAP_FLUSH_AND_HOLD_WRITES
#define IoSkipCurrentIrpStackLocation(Irp)
#define IoCopyCurrentIrpStackLocationToNext(Irp)
_In_opt_ WDFREQUEST _In_ ULONG _In_ BOOLEAN _In_ PCDB Cdb
#define IOCTL_SCSI_PASS_THROUGH
#define IOCTL_SCSI_PASS_THROUGH_DIRECT
#define IOCTL_SCSI_PASS_THROUGH_DIRECT_EX
#define IOCTL_SCSI_PASS_THROUGH_EX
struct _IO_STACK_LOCATION::@1583::@1584 DeviceIoControl
union _IO_STACK_LOCATION::@1583 Parameters
#define STATUS_ACCESS_DENIED
#define STATUS_INVALID_PARAMETER
_In_ WDFREQUEST _In_opt_ PFN_WDF_REQUEST_COMPLETION_ROUTINE _In_opt_ __drv_aliasesMem WDFCONTEXT CompletionContext
#define SL_FORCE_DIRECT_WRITE