104{
107
109
112
114
115
117
118
119
120
121
123
124
125
126
127
129
130
131
132
133
134
135
136
137
139
140
141
142
143
144
145
146#ifdef _MSC_VER
147#pragma prefast(suppress: 28175, "this is a filesystem driver, touching the size member is allowed")
148#endif
151
152
153
154
155
160 }
161
162
163
164
165
167
168 Vcb = &OurDeviceObject->
Vcb;
169
170
171
172
173
174
176
178 }
179 else {
180
181
182
183
184
186
188
190 break;
191
193
195 break;
196
198
200 break;
201
203
205 break;
206
207 default:
208
210 break;
211 }
212 }
213
214 if (PassThrough) {
215
217
218
219
220
221
222
224
226
227
228
229
230
232 }
233
235}
static PIO_STACK_LOCATION IoGetCurrentIrpStackLocation(PIRP Irp)
VOID CdCompleteRequest(_Inout_opt_ PIRP_CONTEXT IrpContext, _Inout_opt_ PIRP Irp, _In_ NTSTATUS Status)
#define CdAcquireCdData(IC)
#define CdReleaseCdData(IC)
#define IRP_CONTEXT_FLAG_WAIT
VOLUME_DEVICE_OBJECT * PVOLUME_DEVICE_OBJECT
#define _Analysis_suppress_lock_checking_(lock)
_In_ PIO_STACK_LOCATION IrpSp
#define IRP_MN_SURPRISE_REMOVAL
#define IoSkipCurrentIrpStackLocation(Irp)
PDEVICE_OBJECT DeviceObject
DEVICE_OBJECT DeviceObject
#define STATUS_INVALID_PARAMETER
#define IRP_MN_REMOVE_DEVICE
#define IRP_MN_CANCEL_REMOVE_DEVICE
#define IRP_MN_QUERY_REMOVE_DEVICE