[ros-diffs] [hpoussin] 26632: Don't ignore results of IRP_MN_FILTER_RESOURCE_REQUIREMENTS

hpoussin at svn.reactos.org hpoussin at svn.reactos.org
Fri May 4 12:49:53 CEST 2007


Author: hpoussin
Date: Fri May  4 14:49:53 2007
New Revision: 26632

URL: http://svn.reactos.org/svn/reactos?rev=26632&view=rev
Log:
Don't ignore results of IRP_MN_FILTER_RESOURCE_REQUIREMENTS

Modified:
    trunk/reactos/ntoskrnl/io/pnpmgr/pnpmgr.c

Modified: trunk/reactos/ntoskrnl/io/pnpmgr/pnpmgr.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/io/pnpmgr/pnpmgr.c?rev=26632&r1=26631&r2=26632&view=diff
==============================================================================
--- trunk/reactos/ntoskrnl/io/pnpmgr/pnpmgr.c (original)
+++ trunk/reactos/ntoskrnl/io/pnpmgr/pnpmgr.c Fri May  4 14:49:53 2007
@@ -155,11 +155,12 @@
       &IoStatusBlock,
       IRP_MN_FILTER_RESOURCE_REQUIREMENTS,
       &Stack);
-   /* FIXME: Take care of return code */
    if (!NT_SUCCESS(Status))
    {
       DPRINT("IopInitiatePnpIrp(IRP_MN_FILTER_RESOURCE_REQUIREMENTS) failed\n");
-   }
+      return Status;
+   }
+   DeviceNode->ResourceRequirements = Stack.Parameters.FilterResourceRequirements.IoResourceRequirementList;
 
    Status = IopAssignDeviceResources(DeviceNode, &RequiredLength);
    if (NT_SUCCESS(Status))
@@ -989,9 +990,12 @@
       &Event,
       IoStatusBlock);
 
-   /* PNP IRPs are always initialized with a status code of
+   /* Most of PNP IRPs are initialized with a status code of
    STATUS_NOT_IMPLEMENTED */
-   Irp->IoStatus.Status = MinorFunction == IRP_MN_FILTER_RESOURCE_REQUIREMENTS ? STATUS_SUCCESS : STATUS_NOT_IMPLEMENTED; // hpoussin's hack of doom
+   if (MinorFunction == IRP_MN_FILTER_RESOURCE_REQUIREMENTS)
+      Irp->IoStatus.Status = STATUS_SUCCESS;
+   else
+      Irp->IoStatus.Status = STATUS_NOT_IMPLEMENTED;
    Irp->IoStatus.Information = 0;
 
    IrpSp = IoGetNextIrpStackLocation(Irp);




More information about the Ros-diffs mailing list