20#define UDF_BUG_CHECK_ID UDF_FILE_SHUTDOWN
75 Irp->IoStatus.Status = RC;
76 Irp->IoStatus.Information = 0;
169#ifdef UDF_DELAYED_CLOSE
171 UDFPrint((
" UDFCommonShutdown: set UDF_VCB_FLAGS_NO_DELAYED_CLOSE\n"));
180 if(
Vcb->RootDirFCB &&
Vcb->RootDirFCB->FileInfo) {
181 UDFPrint((
" UDFCommonShutdown: UDFCloseAllSystemDelayedInDir\n"));
186#ifdef UDF_DELAYED_CLOSE
227 Irp->IoStatus.Status = RC;
228 Irp->IoStatus.Information = 0;
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
NTSTATUS UDFExceptionHandler(PtrUDFIrpContext PtrIrpContext, PIRP Irp)
BOOLEAN __fastcall UDFIsIrpTopLevel(PIRP Irp)
VOID UDFLogEvent(NTSTATUS UDFEventLogId, NTSTATUS RC)
PtrUDFIrpContext UDFAllocateIrpContext(PIRP Irp, PDEVICE_OBJECT PtrTargetDeviceObject)
VOID UDFReleaseIrpContext(PtrUDFIrpContext PtrIrpContext)
long UDFExceptionFilter(PtrUDFIrpContext PtrIrpContext, PEXCEPTION_POINTERS PtrExceptionPointers)
NTSTATUS UDFCommonShutdown(PtrUDFIrpContext PtrIrpContext, PIRP Irp)
NTSTATUS NTAPI UDFShutdown(PDEVICE_OBJECT DeviceObject, PIRP Irp)
#define UDFReleaseResource(Resource)
#define UDFAcquireResourceExclusive(Resource, CanWait)
#define KeDelayExecutionThread(mode, foo, t)
#define UDF_ERROR_INTERNAL_ERROR
#define FsRtlEnterFileSystem
#define FsRtlExitFileSystem
#define IoCompleteRequest
VOID NTAPI IoSetTopLevelIrp(IN PIRP Irp)
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 _SEH2_EXCEPT(...)
#define _SEH2_GetExceptionInformation()
#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)
_In_ PDEVICE_OBJECT DeviceObject
#define IO_DISK_INCREMENT