10#if (_WIN32_WINNT >= 0x0500)
27Ext2PnpCompletionRoutine (
34#pragma alloc_text(PAGE, Ext2Pnp)
35#pragma alloc_text(PAGE, Ext2PnpQueryRemove)
36#pragma alloc_text(PAGE, Ext2PnpRemove)
37#pragma alloc_text(PAGE, Ext2PnpCancelRemove)
38#pragma alloc_text(PAGE, Ext2PnpSurpriseRemove)
50Ext2PnpCompletionRoutine (
95 Irp = IrpContext->Irp;
104 DEBUG(
DL_PNP, (
"Ext2Pnp: Ext2PnpQueryRemove...\n"));
117 DEBUG(
DL_PNP, (
"Ext2Pnp: Ext2PnpCancelRemove...\n"));
123 DEBUG(
DL_PNP, (
"Ext2Pnp: Ext2PnpSupriseRemove...\n"));
133 if (!IrpContext->ExceptionInProgress) {
134 Irp = IrpContext->Irp;
146 IrpContext->Irp =
NULL;
178 DEBUG(
DL_PNP, (
"Ext2PnpQueryRemove: Ext2LockVcb: Vcb=%xh FileObject=%xh ...\n",
187 DEBUG(
DL_PNP, (
"Ext2PnpQueryRemove: Ext2PurgeVolume ...\n"));
198 Ext2PnpCompletionRoutine,
204 DEBUG(
DL_PNP, (
"Ext2PnpQueryRemove: Call lower level driver...\n"));
219 DEBUG(
DL_PNP, (
"Ext2PnpQueryRemove: Ext2CheckDismount ...\n"));
221 DEBUG(
DL_PNP, (
"Ext2PnpQueryRemove: Ext2FlushVolume bDelted=%xh ...\n", bDeleted));
268 Ext2PnpCompletionRoutine,
320 DEBUG(
DL_PNP, (
"Ext2PnpSupriseRemove by Ext2Pnp ...\n"));
338 Ext2PnpCompletionRoutine,
387 DEBUG(
DL_PNP, (
"Ext2PnpCancelRemove by Ext2Pnp ...\n"));
static PIO_STACK_LOCATION IoGetCurrentIrpStackLocation(PIRP Irp)
#define IRP_CONTEXT_FLAG_WAIT
#define NT_SUCCESS(StatCode)
_In_ PIO_STACK_LOCATION IrpSp
#define KeWaitForSingleObject(pEvt, foo, a, b, c)
#define KeInitializeEvent(pEvt, foo, foo2)
#define KeSetEvent(pEvt, foo, foo2)
#define ExAcquireResourceExclusiveLite(res, wait)
NTSTATUS Ext2PnpQueryRemove(PEXT2_IRP_CONTEXT IrpContext, PEXT2_VCB Vcb)
NTSTATUS Ext2Pnp(IN PEXT2_IRP_CONTEXT IrpContext)
NTSTATUS Ext2UnlockVcb(IN PEXT2_VCB Vcb, IN PFILE_OBJECT FileObject)
NTSTATUS Ext2PurgeVolume(IN PEXT2_VCB Vcb, IN BOOLEAN FlushBeforePurge)
#define SetLongFlag(_F, _SF)
BOOLEAN Ext2CheckDismount(IN PEXT2_IRP_CONTEXT IrpContext, IN PEXT2_VCB Vcb, IN BOOLEAN bForce)
NTSTATUS Ext2LockVcb(IN PEXT2_VCB Vcb, IN PFILE_OBJECT FileObject)
#define Ext2CompleteRequest(Irp, bPrint, PriorityBoost)
#define VCB_DEVICE_REMOVED
struct _EXT2_VCB * PEXT2_VCB
NTSTATUS Ext2PnpCancelRemove(PEXT2_IRP_CONTEXT IrpContext, PEXT2_VCB Vcb)
NTSTATUS Ext2PnpSurpriseRemove(PEXT2_IRP_CONTEXT IrpContext, PEXT2_VCB Vcb)
NTSTATUS Ext2PnpRemove(PEXT2_IRP_CONTEXT IrpContext, PEXT2_VCB Vcb)
NTSTATUS Ext2CompleteIrpContext(IN PEXT2_IRP_CONTEXT IrpContext, IN NTSTATUS Status)
NTSTATUS Ext2FlushFiles(IN PEXT2_IRP_CONTEXT IrpContext, IN PEXT2_VCB Vcb, IN BOOLEAN bShutDown)
NTSTATUS Ext2FlushVolume(IN PEXT2_IRP_CONTEXT IrpContext, IN PEXT2_VCB Vcb, IN BOOLEAN bShutDown)
#define IoSetCompletionRoutine(_Irp, _CompletionRoutine, _Context, _InvokeOnSuccess, _InvokeOnError, _InvokeOnCancel)
NTSTATUS NTAPI CcWaitForCurrentLazyWriterActivity(VOID)
#define UNREFERENCED_PARAMETER(P)
#define IRP_MN_SURPRISE_REMOVAL
#define IoSkipCurrentIrpStackLocation(Irp)
#define IoCopyCurrentIrpStackLocationToNext(Irp)
VOID FASTCALL ExReleaseResourceLite(IN PERESOURCE Resource)
#define STATUS_MORE_PROCESSING_REQUIRED
#define STATUS_INVALID_PARAMETER
_In_ PDEVICE_OBJECT DeviceObject
#define IRP_MN_REMOVE_DEVICE
#define IO_DISK_INCREMENT
#define IRP_MN_CANCEL_REMOVE_DEVICE
#define IRP_MN_QUERY_REMOVE_DEVICE