[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