[ros-diffs] [ros-arm-bringup] 34452: - 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.
ros-arm-bringup at svn.reactos.org
ros-arm-bringup at svn.reactos.org
Sun Jul 13 09:33:31 CEST 2008
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/ramdisk/ramdisk.c?rev=34452&r1=34451&r2=34452&view=diff
==============================================================================
--- 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;
}
More information about the Ros-diffs
mailing list