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/ramd…
==============================================================================
--- 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;
}