Author: ekohl Date: Mon Jun 1 15:04:50 2015 New Revision: 67991
URL: http://svn.reactos.org/svn/reactos?rev=67991&view=rev Log: [CDFS] Queue IRP_MJ_DIRECTORY_CONTROL IRPs.
Modified: trunk/reactos/drivers/filesystems/cdfs/cdfs.c trunk/reactos/drivers/filesystems/cdfs/cdfs.h trunk/reactos/drivers/filesystems/cdfs/dirctl.c trunk/reactos/drivers/filesystems/cdfs/dispatch.c
Modified: trunk/reactos/drivers/filesystems/cdfs/cdfs.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/filesystems/cdfs/cd... ============================================================================== --- trunk/reactos/drivers/filesystems/cdfs/cdfs.c [iso-8859-1] (original) +++ trunk/reactos/drivers/filesystems/cdfs/cdfs.c [iso-8859-1] Mon Jun 1 15:04:50 2015 @@ -85,8 +85,7 @@ DriverObject->MajorFunction[IRP_MJ_READ] = CdfsRead; DriverObject->MajorFunction[IRP_MJ_WRITE] = CdfsWrite; DriverObject->MajorFunction[IRP_MJ_FILE_SYSTEM_CONTROL] = CdfsFsdDispatch; - DriverObject->MajorFunction[IRP_MJ_DIRECTORY_CONTROL] = - CdfsDirectoryControl; + DriverObject->MajorFunction[IRP_MJ_DIRECTORY_CONTROL] = CdfsFsdDispatch; DriverObject->MajorFunction[IRP_MJ_QUERY_INFORMATION] = CdfsFsdDispatch; DriverObject->MajorFunction[IRP_MJ_SET_INFORMATION] = CdfsFsdDispatch; DriverObject->MajorFunction[IRP_MJ_QUERY_VOLUME_INFORMATION] = CdfsFsdDispatch;
Modified: trunk/reactos/drivers/filesystems/cdfs/cdfs.h URL: http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/filesystems/cdfs/cd... ============================================================================== --- trunk/reactos/drivers/filesystems/cdfs/cdfs.h [iso-8859-1] (original) +++ trunk/reactos/drivers/filesystems/cdfs/cdfs.h [iso-8859-1] Mon Jun 1 15:04:50 2015 @@ -338,12 +338,10 @@
/* dirctl.c */
-DRIVER_DISPATCH CdfsDirectoryControl; - -NTSTATUS -NTAPI -CdfsDirectoryControl(PDEVICE_OBJECT DeviceObject, - PIRP Irp); +NTSTATUS +NTAPI +CdfsDirectoryControl( + PCDFS_IRP_CONTEXT IrpContext);
/* dispatch.c */
@@ -452,13 +450,9 @@
/* fsctl.c */
-//DRIVER_DISPATCH CdfsFileSystemControl; - NTSTATUS NTAPI CdfsFileSystemControl( PCDFS_IRP_CONTEXT IrpContext); -// PDEVICE_OBJECT DeviceObject, -// PIRP Irp);
/* misc.c */
Modified: trunk/reactos/drivers/filesystems/cdfs/dirctl.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/filesystems/cdfs/di... ============================================================================== --- trunk/reactos/drivers/filesystems/cdfs/dirctl.c [iso-8859-1] (original) +++ trunk/reactos/drivers/filesystems/cdfs/dirctl.c [iso-8859-1] Mon Jun 1 15:04:50 2015 @@ -784,18 +784,23 @@
NTSTATUS NTAPI -CdfsDirectoryControl(PDEVICE_OBJECT DeviceObject, - PIRP Irp) +CdfsDirectoryControl( + PCDFS_IRP_CONTEXT IrpContext) { - PIO_STACK_LOCATION Stack; + PIRP Irp; + PDEVICE_OBJECT DeviceObject; NTSTATUS Status;
DPRINT("CdfsDirectoryControl() called\n"); + + ASSERT(IrpContext); + + Irp = IrpContext->Irp; + DeviceObject = IrpContext->DeviceObject; + FsRtlEnterFileSystem();
- Stack = IoGetCurrentIrpStackLocation(Irp); - - switch (Stack->MinorFunction) + switch (IrpContext->MinorFunction) { case IRP_MN_QUERY_DIRECTORY: Status = CdfsQueryDirectory(DeviceObject, @@ -808,7 +813,7 @@ break;
default: - DPRINT1("CDFS: MinorFunction %u\n", Stack->MinorFunction); + DPRINT1("CDFS: MinorFunction %u\n", IrpContext->MinorFunction); Status = STATUS_INVALID_DEVICE_REQUEST; break; } @@ -817,7 +822,6 @@ { Irp->IoStatus.Status = Status; Irp->IoStatus.Information = 0; - IoCompleteRequest(Irp, IO_NO_INCREMENT); } FsRtlExitFileSystem();
Modified: trunk/reactos/drivers/filesystems/cdfs/dispatch.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/filesystems/cdfs/di... ============================================================================== --- trunk/reactos/drivers/filesystems/cdfs/dispatch.c [iso-8859-1] (original) +++ trunk/reactos/drivers/filesystems/cdfs/dispatch.c [iso-8859-1] Mon Jun 1 15:04:50 2015 @@ -18,7 +18,7 @@ * * COPYRIGHT: See COPYING in the top level directory * PROJECT: ReactOS kernel - * FILE: drivers/filesystem/cdfs/dispatch.c + * FILE: drivers/filesystems/cdfs/dispatch.c * PURPOSE: CDROM (ISO 9660) filesystem driver * PROGRAMMER: Pierre Schweitzer */ @@ -85,7 +85,7 @@ break;
case IRP_MJ_DIRECTORY_CONTROL: -// Status = CdfsDirectoryControl(IrpContext); + Status = CdfsDirectoryControl(IrpContext); break;
case IRP_MJ_READ: