Author: hpoussin
Date: Tue Jun 12 12:38:32 2007
New Revision: 27153
URL:
http://svn.reactos.org/svn/reactos?rev=27153&view=rev
Log:
Do not create a new device node if we already know the PDO
Modified:
trunk/reactos/ntoskrnl/io/iomgr/driver.c
trunk/reactos/ntoskrnl/io/pnpmgr/plugplay.c
trunk/reactos/ntoskrnl/io/pnpmgr/pnpmgr.c
Modified: trunk/reactos/ntoskrnl/io/iomgr/driver.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/io/iomgr/driver.c…
==============================================================================
--- trunk/reactos/ntoskrnl/io/iomgr/driver.c (original)
+++ trunk/reactos/ntoskrnl/io/iomgr/driver.c Tue Jun 12 12:38:32 2007
@@ -135,7 +135,7 @@
if (!NT_SUCCESS(Status))
{
- DPRINT1("Failed to reference driver object, status=0x%08x\n", Status);
+ DPRINT("Failed to reference driver object, status=0x%08x\n", Status);
return Status;
}
Modified: trunk/reactos/ntoskrnl/io/pnpmgr/plugplay.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/io/pnpmgr/plugpla…
==============================================================================
--- trunk/reactos/ntoskrnl/io/pnpmgr/plugplay.c (original)
+++ trunk/reactos/ntoskrnl/io/pnpmgr/plugplay.c Tue Jun 12 12:38:32 2007
@@ -694,7 +694,7 @@
if (DeviceObject == NULL)
return STATUS_NO_SUCH_DEVICE;
- DeviceNode =
((PEXTENDED_DEVOBJ_EXTENSION)DeviceObject->DeviceObjectExtension)->DeviceNode;
+ DeviceNode = IopGetDeviceNode(DeviceObject);
switch (Operation)
{
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 Tue Jun 12 12:38:32 2007
@@ -2574,6 +2574,11 @@
*/
for (i = 0; i < DeviceRelations->Count; i++)
{
+ if (IopGetDeviceNode(DeviceRelations->Objects[i]) != NULL)
+ {
+ ObDereferenceObject(DeviceRelations->Objects[i]);
+ continue;
+ }
Status = IopCreateDeviceNode(
DeviceNode,
DeviceRelations->Objects[i],