124{
127
129
132
133 ULONG VcbHoldCount = 0;
135
137
139
141
142
143
144
145
147
148
149
150
151
152
154
155
156
157
158
161
162
163
164
165
166
169
170
171
172
173
175
176
177
178
179
180 IrpContext = &StackIrpContext;
181
182
183
184
185
186 } else {
187
188
189
190
191
194
195 UserReference = (
ULONG) IrpContext->ExceptionStatus;
197 }
198
200
201
202
203
204
205
207
208
209
210
211
213
216 }
217
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
240
241 if (PotentialVcbTeardown ||
243 (
Fcb->
Vcb != CurrentVcb)) {
244
245 if (CurrentVcb !=
NULL) {
246
248 }
249
250 if (PotentialVcbTeardown) {
251
253
254
255
256
257
258
263
264 if (!PotentialVcbTeardown) {
265
267 }
268 }
269
271
273
275
276 VcbHoldCount = 0;
277
278 } else {
279
280 VcbHoldCount += 1;
281 }
282
283
284
285
286
287 CdCommonClosePrivate( IrpContext, CurrentVcb,
Fcb, UserReference,
FALSE );
288
289
290
291
292
293
294 if (PotentialVcbTeardown) {
295
297 CdCheckForDismount( IrpContext, CurrentVcb,
FALSE );
298
300
302 PotentialVcbTeardown =
FALSE;
303 }
304
305
306
307
308
310 }
311
312
313
314
315
316 if (CurrentVcb !=
NULL) {
317
319
320 }
321
322#ifdef _MSC_VER
323#pragma prefast(suppress:26165, "Esp:1153")
324#endif
326}
VOID CdCompleteRequest(_Inout_opt_ PIRP_CONTEXT IrpContext, _Inout_opt_ PIRP Irp, _In_ NTSTATUS Status)
VOID CdSetThreadContext(_Inout_ PIRP_CONTEXT IrpContext, _In_ PTHREAD_CONTEXT ThreadContext)
VOID CdInitializeStackIrpContext(_Out_ PIRP_CONTEXT IrpContext, _In_ PIRP_CONTEXT_LITE IrpContextLite)
#define CdAcquireCdData(IC)
#define CdReleaseVcb(IC, V)
#define CdFreeIrpContextLite(ICL)
#define CdReleaseCdData(IC)
#define CdAcquireVcbShared(IC, V, I)
#define IRP_CONTEXT_FSP_FLAGS
#define IRP_CONTEXT_FLAG_TOP_LEVEL_CDFS
IRP_CONTEXT_LITE * PIRP_CONTEXT_LITE
#define IRP_CONTEXT_FLAG_TOP_LEVEL
PIRP_CONTEXT CdRemoveClose(_In_opt_ PVCB Vcb)
#define CDFS_NTC_IRP_CONTEXT
#define SafeNodeType(Ptr)
#define ClearFlag(_F, _SF)
#define FsRtlEnterFileSystem
#define FsRtlExitFileSystem
#define _Analysis_assume_
#define ARGUMENT_PRESENT(ArgumentPointer)
ULONG MinDelayedCloseCount
struct _FCB::@729::@732 Fcb
VCB_CONDITION VcbCondition