mirror of
https://github.com/reactos/reactos.git
synced 2025-08-05 19:22:58 +00:00
[NTFS]
Handle IRP_MJ_FILE_SYSTEM_CONTROL with the dispatch routine svn path=/trunk/; revision=67905
This commit is contained in:
parent
6971703339
commit
8f4f1ce119
4 changed files with 14 additions and 17 deletions
|
@ -104,6 +104,10 @@ NtfsDispatch(PNTFS_IRP_CONTEXT IrpContext)
|
||||||
case IRP_MJ_CREATE:
|
case IRP_MJ_CREATE:
|
||||||
Status = NtfsCreate(IrpContext);
|
Status = NtfsCreate(IrpContext);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case IRP_MJ_FILE_SYSTEM_CONTROL:
|
||||||
|
Status = NtfsFileSystemControl(IrpContext);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
ASSERT((!(IrpContext->Flags & IRPCONTEXT_COMPLETE) && !(IrpContext->Flags & IRPCONTEXT_QUEUE)) ||
|
ASSERT((!(IrpContext->Flags & IRPCONTEXT_COMPLETE) && !(IrpContext->Flags & IRPCONTEXT_QUEUE)) ||
|
||||||
|
|
|
@ -866,20 +866,19 @@ NtfsUserFsRequest(PDEVICE_OBJECT DeviceObject,
|
||||||
|
|
||||||
|
|
||||||
NTSTATUS
|
NTSTATUS
|
||||||
NTAPI
|
NtfsFileSystemControl(PNTFS_IRP_CONTEXT IrpContext)
|
||||||
NtfsFsdFileSystemControl(PDEVICE_OBJECT DeviceObject,
|
|
||||||
PIRP Irp)
|
|
||||||
{
|
{
|
||||||
PIO_STACK_LOCATION Stack;
|
|
||||||
NTSTATUS Status;
|
NTSTATUS Status;
|
||||||
|
PIRP Irp;
|
||||||
|
PDEVICE_OBJECT DeviceObject;
|
||||||
|
|
||||||
DPRINT1("NtfsFileSystemControl() called\n");
|
DPRINT1("NtfsFileSystemControl() called\n");
|
||||||
|
|
||||||
Stack = IoGetCurrentIrpStackLocation(Irp);
|
DeviceObject = IrpContext->DeviceObject;
|
||||||
|
Irp = IrpContext->Irp;
|
||||||
Irp->IoStatus.Information = 0;
|
Irp->IoStatus.Information = 0;
|
||||||
|
|
||||||
switch (Stack->MinorFunction)
|
switch (IrpContext->MinorFunction)
|
||||||
{
|
{
|
||||||
case IRP_MN_KERNEL_CALL:
|
case IRP_MN_KERNEL_CALL:
|
||||||
DPRINT1("NTFS: IRP_MN_USER_FS_REQUEST\n");
|
DPRINT1("NTFS: IRP_MN_USER_FS_REQUEST\n");
|
||||||
|
@ -901,15 +900,11 @@ NtfsFsdFileSystemControl(PDEVICE_OBJECT DeviceObject,
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
DPRINT1("NTFS FSC: MinorFunction %d\n", Stack->MinorFunction);
|
DPRINT1("NTFS FSC: MinorFunction %d\n", IrpContext->MinorFunction);
|
||||||
Status = STATUS_INVALID_DEVICE_REQUEST;
|
Status = STATUS_INVALID_DEVICE_REQUEST;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
Irp->IoStatus.Status = Status;
|
|
||||||
|
|
||||||
IoCompleteRequest(Irp, IO_NO_INCREMENT);
|
|
||||||
|
|
||||||
return Status;
|
return Status;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -131,7 +131,7 @@ NtfsInitializeFunctionPointers(PDRIVER_OBJECT DriverObject)
|
||||||
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;
|
||||||
DriverObject->MajorFunction[IRP_MJ_DIRECTORY_CONTROL] = NtfsFsdDispatch;
|
DriverObject->MajorFunction[IRP_MJ_DIRECTORY_CONTROL] = NtfsFsdDispatch;
|
||||||
DriverObject->MajorFunction[IRP_MJ_FILE_SYSTEM_CONTROL] = NtfsFsdFileSystemControl;
|
DriverObject->MajorFunction[IRP_MJ_FILE_SYSTEM_CONTROL] = NtfsFsdDispatch;
|
||||||
DriverObject->MajorFunction[IRP_MJ_DEVICE_CONTROL] = NtfsFsdDispatch;
|
DriverObject->MajorFunction[IRP_MJ_DEVICE_CONTROL] = NtfsFsdDispatch;
|
||||||
|
|
||||||
return;
|
return;
|
||||||
|
|
|
@ -644,10 +644,8 @@ NtfsQueryInformation(PNTFS_IRP_CONTEXT IrpContext);
|
||||||
|
|
||||||
/* fsctl.c */
|
/* fsctl.c */
|
||||||
|
|
||||||
DRIVER_DISPATCH NtfsFsdFileSystemControl;
|
NTSTATUS
|
||||||
NTSTATUS NTAPI
|
NtfsFileSystemControl(PNTFS_IRP_CONTEXT IrpContext);
|
||||||
NtfsFsdFileSystemControl(PDEVICE_OBJECT DeviceObject,
|
|
||||||
PIRP Irp);
|
|
||||||
|
|
||||||
|
|
||||||
/* mft.c */
|
/* mft.c */
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue