Author: pschweitzer Date: Wed Oct 29 18:42:05 2014 New Revision: 65106
URL: http://svn.reactos.org/svn/reactos?rev=65106&view=rev Log: [NTFS] Finally, move old stuff back from disk.sys to ntfs.sys now it can be properly reached on volume opening: - Halfplement NtfsUserFsRequest() and add support for IRP_MN_USER_FS_REQUEST in NtfsFsdFileSystemControl() - Also, use the proper FSCTL code: FSCTL_GET_NTFS_VOLUME_DATA which exists and is documented instead of FSCTL_GET_NTFS_VOLUME_DATA. Spotted by Christoph.
CORE-8725
Modified: trunk/reactos/drivers/filesystems/ntfs/fsctl.c
Modified: trunk/reactos/drivers/filesystems/ntfs/fsctl.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/filesystems/ntfs/fs... ============================================================================== --- trunk/reactos/drivers/filesystems/ntfs/fsctl.c [iso-8859-1] (original) +++ trunk/reactos/drivers/filesystems/ntfs/fsctl.c [iso-8859-1] Wed Oct 29 18:42:05 2014 @@ -526,6 +526,34 @@ }
+static +NTSTATUS +NtfsUserFsRequest(PDEVICE_OBJECT DeviceObject, + PIRP Irp) +{ + NTSTATUS Status; + PIO_STACK_LOCATION Stack; + + DPRINT1("NtfsUserFsRequest(%p, %p)\n", DeviceObject, Irp); + + Stack = IoGetCurrentIrpStackLocation(Irp); + switch (Stack->Parameters.FileSystemControl.FsControlCode) + { + case FSCTL_GET_NTFS_VOLUME_DATA: + UNIMPLEMENTED; + Status = STATUS_NOT_IMPLEMENTED; + break; + + default: + DPRINT1("Invalid user request: %x\n", Stack->Parameters.FileSystemControl.FsControlCode); + Status = STATUS_INVALID_DEVICE_REQUEST; + break; + } + + return Status; +} + + NTSTATUS NTAPI NtfsFsdFileSystemControl(PDEVICE_OBJECT DeviceObject, @@ -541,9 +569,12 @@ switch (Stack->MinorFunction) { case IRP_MN_KERNEL_CALL: + DPRINT1("NTFS: IRP_MN_USER_FS_REQUEST\n"); + Status = STATUS_INVALID_DEVICE_REQUEST; + break; + case IRP_MN_USER_FS_REQUEST: - DPRINT("NTFS: IRP_MN_USER_FS_REQUEST/IRP_MN_KERNEL_CALL\n"); - Status = STATUS_INVALID_DEVICE_REQUEST; + Status = NtfsUserFsRequest(DeviceObject, Irp); break;
case IRP_MN_MOUNT_VOLUME: @@ -557,7 +588,7 @@ break;
default: - DPRINT("NTFS FSC: MinorFunction %d\n", Stack->MinorFunction); + DPRINT1("NTFS FSC: MinorFunction %d\n", Stack->MinorFunction); Status = STATUS_INVALID_DEVICE_REQUEST; break; }