51{
55
58
60
61
62
63
64
66
70 }
71
72
73
74
75
76
77
78
79
80
81
82
83
84
86
87
88
89
90
92
94
96
98
100
101
102
103
104
105
108
109
110
111
112
114 Irp->IoStatus.Information = 0;
115
116
117
118
119
120 switch (IrpContext->MajorFunction) {
121
123
124 CdCommonCreate( IrpContext,
Irp );
125 break;
126
128
130 break;
131
133
134 CdCommonRead( IrpContext,
Irp );
135 break;
136
138
139 CdCommonQueryInfo( IrpContext,
Irp );
140 break;
141
143
144 CdCommonSetInfo( IrpContext,
Irp );
145 break;
146
148
149 CdCommonQueryVolInfo( IrpContext,
Irp );
150 break;
151
153
154 CdCommonDirControl( IrpContext,
Irp );
155 break;
156
158
159 CdCommonFsControl( IrpContext,
Irp );
160 break;
161
163
165 break;
166
168
170 break;
171
173
174 CdCommonCleanup( IrpContext,
Irp );
175 break;
176
178
180 CdCommonPnp( IrpContext,
Irp );
181 break;
182
183 default :
184
187 }
188
190
193
194
195
196
197
199
200
201
202
203
206 }
207
209
210
211
212
213
214
216
219
220
221
222
223
224
226
228
229
230
231
232
233
234
236
238
239 } else {
240
242
244 }
245
247
248
249
250
251
252
254
255 break;
256 }
257
258
259
260
261
264 WorkQueueItem.List );
265
269
270 continue;
271 }
272
273 break;
274 }
275
276 return;
277}
static PIO_STACK_LOCATION IoGetCurrentIrpStackLocation(PIRP Irp)
VOID CdCompleteRequest(_Inout_opt_ PIRP_CONTEXT IrpContext, _Inout_opt_ PIRP Irp, _In_ NTSTATUS Status)
LONG CdExceptionFilter(_Inout_ PIRP_CONTEXT IrpContext, _In_ PEXCEPTION_POINTERS ExceptionPointer)
VOID CdSetThreadContext(_Inout_ PIRP_CONTEXT IrpContext, _In_ PTHREAD_CONTEXT ThreadContext)
VOID CdCleanupIrpContext(_In_ PIRP_CONTEXT IrpContext, _In_ BOOLEAN Post)
NTSTATUS CdCommonLockControl(_Inout_ PIRP_CONTEXT IrpContext, _Inout_ PIRP Irp)
NTSTATUS CdCommonDevControl(_Inout_ PIRP_CONTEXT IrpContext, _Inout_ PIRP Irp)
#define IRP_CONTEXT_FSP_FLAGS
#define IRP_CONTEXT_FLAG_MORE_PROCESSING
_In_ PIO_STACK_LOCATION IrpSp
#define KeReleaseSpinLock(sl, irql)
#define KeAcquireSpinLock(sl, irql)
#define RemoveHeadList(ListHead)
#define FsRtlEnterFileSystem
#define FsRtlExitFileSystem
#define _SEH2_GetExceptionCode()
#define _SEH2_EXCEPT(...)
#define _SEH2_GetExceptionInformation()
#define IRP_MJ_DIRECTORY_CONTROL
#define IRP_MJ_DEVICE_CONTROL
#define IRP_MJ_QUERY_VOLUME_INFORMATION
#define IRP_MJ_LOCK_CONTROL
#define IRP_MJ_SET_INFORMATION
#define IRP_MJ_QUERY_INFORMATION
#define __analysis_assert(e)
base of all file and directory entries
PDEVICE_OBJECT DeviceObject
__volatile LONG PostedRequestCount
KSPIN_LOCK OverflowQueueSpinLock
#define CONTAINING_RECORD(address, type, field)
#define STATUS_INVALID_DEVICE_REQUEST
_In_ PDEVICE_OBJECT DeviceObject
#define IRP_MJ_FILE_SYSTEM_CONTROL