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.…
==============================================================================
--- 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);