21#define UDF_BUG_CHECK_ID UDF_FILE_PNP
111 Irp->IoStatus.Status = RC;
112 Irp->IoStatus.Information = 0;
167 Irp->IoStatus.Information = 0;
198 UDFPrint((
"UDFCommonPnp: pass through\n"));
261#ifdef UDF_DELAYED_CLOSE
304 RC =
Irp->IoStatus.Status;
343 if (!VcbDeleted && VcbAcquired) {
352 Irp->IoStatus.Status = RC;
407#ifdef UDF_DELAYED_CLOSE
417 (
Vcb->VolumeLockPID != (
ULONG)-1) ) {
418 Vcb->Vpb->Flags &= ~VPB_LOCKED;
419 Vcb->VCBFlags &= ~UDF_VCB_FLAGS_VOLUME_LOCKED;
420 Vcb->VolumeLockFileObject =
NULL;
421 Vcb->VolumeLockPID = -1;
451 RC =
Irp->IoStatus.Status;
468 Vcb->VCBFlags &= ~UDF_VCB_FLAGS_VOLUME_MOUNTED;
482 if (!VcbDeleted && VcbAcquired) {
491 Irp->IoStatus.Status = RC;
551#ifdef UDF_DELAYED_CLOSE
584 RC =
Irp->IoStatus.Status;
598 Vcb->VCBFlags &= ~UDF_VCB_FLAGS_VOLUME_MOUNTED;
616 if (!VcbDeleted && VcbAcquired) {
625 Irp->IoStatus.Status = RC;
static PIO_STACK_LOCATION IoGetCurrentIrpStackLocation(PIRP Irp)
struct _PREVENT_MEDIA_REMOVAL_USER_IN * PPREVENT_MEDIA_REMOVAL_USER_IN
VOID UDFCloseAllDelayed(IN PVCB Vcb)
#define NT_SUCCESS(StatCode)
_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)
#define UDFReleaseResource(Resource)
#define KeWaitForSingleObject(pEvt, foo, a, b, c)
#define KeInitializeEvent(pEvt, foo, foo2)
#define KeSetEvent(pEvt, foo, foo2)
#define UDFAcquireResourceExclusive(Resource, CanWait)
#define UDF_ERROR_INTERNAL_ERROR
#define FsRtlEnterFileSystem
#define FsRtlExitFileSystem
#define IoSetCompletionRoutine(_Irp, _CompletionRoutine, _Context, _InvokeOnSuccess, _InvokeOnError, _InvokeOnCancel)
#define UNREFERENCED_PARAMETER(P)
#define IRP_MN_SURPRISE_REMOVAL
#define IoSkipCurrentIrpStackLocation(Irp)
#define IoCopyCurrentIrpStackLocationToNext(Irp)
#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)
NTSTATUS UDFPnpRemove(PtrUDFIrpContext PtrIrpContext, PIRP Irp, PVCB Vcb)
NTSTATUS UDFPnpQueryRemove(PtrUDFIrpContext PtrIrpContext, PIRP Irp, PVCB Vcb)
NTSTATUS UDFCommonPnp(PtrUDFIrpContext PtrIrpContext, IN PIRP Irp)
NTSTATUS UDFPnpSurpriseRemove(PtrUDFIrpContext PtrIrpContext, PIRP Irp, PVCB Vcb)
NTSTATUS UDFPnp(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)
NTSTATUS UDFPnpCancelRemove(PtrUDFIrpContext PtrIrpContext, PIRP Irp, PVCB Vcb)
NTSTATUS NTAPI UDFPnpCompletionRoutine(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp, IN PVOID Contxt)
BOOLEAN UDFCheckForDismount(IN PtrUDFIrpContext IrpContext, IN PVCB Vcb, IN BOOLEAN VcbAcquired)
#define UDFCloseAllSystemDelayedInDir(Vcb, FI)
#define _SEH2_AbnormalTermination()
#define _SEH2_EXCEPT(...)
#define _SEH2_GetExceptionInformation()
#define STATUS_MORE_PROCESSING_REQUIRED
#define UDF_IRP_CONTEXT_CAN_BLOCK
#define UDF_NODE_TYPE_VCB
PDEVICE_OBJECT DeviceObject
#define UDF_VCB_FLAGS_RAW_DISK
#define STATUS_INVALID_PARAMETER
#define STATUS_INSUFFICIENT_RESOURCES
_In_ PDEVICE_OBJECT DeviceObject
#define IRP_INPUT_OPERATION
#define IRP_MN_REMOVE_DEVICE
#define IO_DISK_INCREMENT
#define IRP_MN_QUERY_REMOVE_DEVICE