Author: ros-arm-bringup Date: Sun Jul 13 02:33:31 2008 New Revision: 34452
URL: http://svn.reactos.org/svn/reactos?rev=34452&view=rev Log: - Implement IRP_MN_QUERY_DEVICE_TEXT/BUS_INFORMATION/CAPABILITIES for FDOs (just forward to the attached device). - Implement IRP_MN_QUERY_RESOURCES/RESOURCE_REQUIREMENTS for FDOs and PDOs (immediately complete the IRP and exit). - We now get to RamdiskDeviceControl -- the kernel is attempting to create the ramdisk.
Modified: trunk/reactos/drivers/storage/class/ramdisk/ramdisk.c
Modified: trunk/reactos/drivers/storage/class/ramdisk/ramdisk.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/storage/class/ramdi... ============================================================================== --- trunk/reactos/drivers/storage/class/ramdisk/ramdisk.c [iso-8859-1] (original) +++ trunk/reactos/drivers/storage/class/ramdisk/ramdisk.c [iso-8859-1] Sun Jul 13 02:33:31 2008 @@ -379,13 +379,19 @@ { DPRINT1("PnP IRP: %lx\n", Minor); while (TRUE); - } + } break;
case IRP_MN_QUERY_BUS_INFORMATION:
- DPRINT1("PnP IRP: %lx\n", Minor); - while (TRUE); + // + // Are we a PDO? + // + if (DeviceExtension->Type == RamdiskPdo) + { + DPRINT1("PnP IRP: %lx\n", Minor); + while (TRUE); + } break;
case IRP_MN_EJECT: @@ -396,8 +402,14 @@
case IRP_MN_QUERY_DEVICE_TEXT:
- DPRINT1("PnP IRP: %lx\n", Minor); - while (TRUE); + // + // Are we a PDO? + // + if (DeviceExtension->Type == RamdiskPdo) + { + DPRINT1("PnP IRP: %lx\n", Minor); + while (TRUE); + } break;
case IRP_MN_QUERY_DEVICE_RELATIONS: @@ -408,9 +420,24 @@
case IRP_MN_QUERY_CAPABILITIES:
- DPRINT1("PnP IRP: %lx\n", Minor); - while (TRUE); - break; + // + // Are we a PDO? + // + if (DeviceExtension->Type == RamdiskPdo) + { + DPRINT1("PnP IRP: %lx\n", Minor); + while (TRUE); + } + break; + + case IRP_MN_QUERY_RESOURCES: + case IRP_MN_QUERY_RESOURCE_REQUIREMENTS: + + // + // Complete immediately without touching it + // + IoCompleteRequest(Irp, IO_NO_INCREMENT); + goto ReleaseAndReturn;
default:
@@ -439,6 +466,7 @@ // // Release the lock and return status // +ReleaseAndReturn: IoReleaseRemoveLock(&DeviceExtension->RemoveLock, Irp); return Status; }