Handle IRP_MJ_WRITE with the dispatch routine

svn path=/trunk/; revision=67876
This commit is contained in:
Pierre Schweitzer 2015-05-24 12:17:43 +00:00
parent ab8558bafd
commit 6277edf7d8
4 changed files with 11 additions and 12 deletions

View file

@ -71,6 +71,10 @@ NtfsDispatch(PNTFS_IRP_CONTEXT IrpContext)
case IRP_MJ_DEVICE_CONTROL: case IRP_MJ_DEVICE_CONTROL:
Status = NtfsDeviceControl(IrpContext); Status = NtfsDeviceControl(IrpContext);
break; break;
case IRP_MJ_WRITE:
Status = NtfsWrite(IrpContext);
break;
} }
ASSERT((!(IrpContext->Flags & IRPCONTEXT_COMPLETE) && !(IrpContext->Flags & IRPCONTEXT_QUEUE)) || ASSERT((!(IrpContext->Flags & IRPCONTEXT_COMPLETE) && !(IrpContext->Flags & IRPCONTEXT_QUEUE)) ||

View file

@ -122,7 +122,7 @@ NtfsInitializeFunctionPointers(PDRIVER_OBJECT DriverObject)
DriverObject->MajorFunction[IRP_MJ_CREATE] = NtfsFsdCreate; DriverObject->MajorFunction[IRP_MJ_CREATE] = NtfsFsdCreate;
DriverObject->MajorFunction[IRP_MJ_CLOSE] = NtfsFsdClose; DriverObject->MajorFunction[IRP_MJ_CLOSE] = NtfsFsdClose;
DriverObject->MajorFunction[IRP_MJ_READ] = NtfsFsdDispatch; DriverObject->MajorFunction[IRP_MJ_READ] = NtfsFsdDispatch;
DriverObject->MajorFunction[IRP_MJ_WRITE] = NtfsFsdWrite; DriverObject->MajorFunction[IRP_MJ_WRITE] = NtfsFsdDispatch;
DriverObject->MajorFunction[IRP_MJ_QUERY_INFORMATION] = NtfsFsdDispatch; DriverObject->MajorFunction[IRP_MJ_QUERY_INFORMATION] = NtfsFsdDispatch;
DriverObject->MajorFunction[IRP_MJ_QUERY_VOLUME_INFORMATION] = NtfsFsdDispatch; DriverObject->MajorFunction[IRP_MJ_QUERY_VOLUME_INFORMATION] = NtfsFsdDispatch;
DriverObject->MajorFunction[IRP_MJ_SET_VOLUME_INFORMATION] = NtfsFsdDispatch; DriverObject->MajorFunction[IRP_MJ_SET_VOLUME_INFORMATION] = NtfsFsdDispatch;

View file

@ -762,10 +762,8 @@ NtfsFileFlagsToAttributes(ULONG NtfsAttributes,
NTSTATUS NTSTATUS
NtfsRead(PNTFS_IRP_CONTEXT IrpContext); NtfsRead(PNTFS_IRP_CONTEXT IrpContext);
DRIVER_DISPATCH NtfsFsdWrite; NTSTATUS
NTSTATUS NTAPI NtfsWrite(PNTFS_IRP_CONTEXT IrpContext);
NtfsFsdWrite(PDEVICE_OBJECT DeviceObject,
PIRP Irp);
/* volinfo.c */ /* volinfo.c */

View file

@ -186,7 +186,7 @@ NtfsRead(PNTFS_IRP_CONTEXT IrpContext)
PIRP Irp; PIRP Irp;
PDEVICE_OBJECT DeviceObject; PDEVICE_OBJECT DeviceObject;
DPRINT("NtfsRead(DeviceObject %p)\n", IrpContext); DPRINT("NtfsRead(IrpContext %p)\n", IrpContext);
DeviceObject = IrpContext->DeviceObject; DeviceObject = IrpContext->DeviceObject;
Irp = IrpContext->Irp; Irp = IrpContext->Irp;
@ -225,14 +225,11 @@ NtfsRead(PNTFS_IRP_CONTEXT IrpContext)
NTSTATUS NTSTATUS
NTAPI NtfsWrite(PNTFS_IRP_CONTEXT IrpContext)
NtfsFsdWrite(PDEVICE_OBJECT DeviceObject,
PIRP Irp)
{ {
DPRINT("NtfwWrite(DeviceObject %x Irp %x)\n",DeviceObject,Irp); DPRINT("NtfsWrite(IrpContext %p)\n",IrpContext);
Irp->IoStatus.Status = STATUS_NOT_SUPPORTED; IrpContext->Irp->IoStatus.Information = 0;
Irp->IoStatus.Information = 0;
return STATUS_NOT_SUPPORTED; return STATUS_NOT_SUPPORTED;
} }