119{
126
128
130
133
135 if(!Buf)
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
157
159
161
163
166
168
169#ifdef UDF_DELAYED_CLOSE
171 UDFPrint((
" UDFCommonShutdown: set UDF_VCB_FLAGS_NO_DELAYED_CLOSE\n"));
174#endif
175
176
177
178
180 if(
Vcb->RootDirFCB &&
Vcb->RootDirFCB->FileInfo) {
181 UDFPrint((
" UDFCommonShutdown: UDFCloseAllSystemDelayedInDir\n"));
184 }
185
186#ifdef UDF_DELAYED_CLOSE
188
189#endif
190
191
193
194
196
198
200
202
205
208 }
211 }
212
214 }
215 }
216
217
220
222
224
227 Irp->IoStatus.Status = RC;
228 Irp->IoStatus.Information = 0;
229
231
233 }
234
236
237 return(RC);
238}
static PIO_STACK_LOCATION IoGetCurrentIrpStackLocation(PIRP Irp)
struct _PREVENT_MEDIA_REMOVAL_USER_IN * PPREVENT_MEDIA_REMOVAL_USER_IN
VOID UDFCloseAllDelayed(IN PVCB Vcb)
_In_ PIO_STACK_LOCATION IrpSp
VOID UDFReleaseIrpContext(PtrUDFIrpContext PtrIrpContext)
#define UDFReleaseResource(Resource)
#define UDFAcquireResourceExclusive(Resource, CanWait)
#define KeDelayExecutionThread(mode, foo, t)
#define IoCompleteRequest
OSSTATUS UDFDoDismountSequence(IN PVCB Vcb, IN PPREVENT_MEDIA_REMOVAL_USER_IN Buf, IN BOOLEAN Eject)
VOID UDFStopEjectWaiter(PVCB Vcb)
#define UDFCloseAllSystemDelayedInDir(Vcb, FI)
#define _SEH2_AbnormalTermination()
#define CONTAINING_RECORD(address, type, field)
#define UDF_VCB_FLAGS_NO_DELAYED_CLOSE
#define UDF_VCB_FLAGS_REMOVABLE_MEDIA
#define UDF_VCB_FLAGS_VOLUME_READ_ONLY
#define UDF_VCB_FLAGS_SHUTDOWN
#define STATUS_INSUFFICIENT_RESOURCES
static int Link(const char **args)
#define IO_DISK_INCREMENT