/* INCLUDES *****************************************************************/
-#define NDEBUG
#include "vfat.h"
+#define NDEBUG
+#include <debug.h>
+
/* GLOBALS ******************************************************************/
const char* MajorFunctionNames[] =
return Status;
}
+static
+NTSTATUS
+VfatDeviceControl(
+ IN PVFAT_IRP_CONTEXT IrpContext)
+{
+ IoSkipCurrentIrpStackLocation(IrpContext->Irp);
+
+ return IoCallDriver(IrpContext->DeviceExt->StorageDevice, IrpContext->Irp);
+}
+
static
NTSTATUS
VfatDispatchRequest(
return VfatSetVolumeInformation(IrpContext);
case IRP_MJ_LOCK_CONTROL:
return VfatLockControl(IrpContext);
+ case IRP_MJ_DEVICE_CONTROL:
+ return VfatDeviceControl(IrpContext);
case IRP_MJ_CLEANUP:
return VfatCleanup(IrpContext);
case IRP_MJ_FLUSH_BUFFERS:
{
Status = STATUS_INSUFFICIENT_RESOURCES;
Irp->IoStatus.Status = Status;
- IoCompleteRequest (Irp, IO_NO_INCREMENT);
+ IoCompleteRequest(Irp, IO_NO_INCREMENT);
}
else
{
FsRtlEnterFileSystem();
- Status = VfatDispatchRequest (IrpContext);
+ Status = VfatDispatchRequest(IrpContext);
FsRtlExitFileSystem();
}
return Status;
return STATUS_SUCCESS;
}
-