X-Git-Url: https://git.reactos.org/?p=reactos.git;a=blobdiff_plain;f=ntoskrnl%2Fio%2Fpnpmgr%2Fpnpreport.c;h=206fccfa251c4bfd9c6d1d1ce4d45eb6c8e51d61;hp=91b5c07a10a4918a8784563a167b9fdad909d80c;hb=121e60dbda9f161d02983d430dc1341c4ee6874d;hpb=753f07c723690b484ad19095c9009ccff183423f diff --git a/ntoskrnl/io/pnpmgr/pnpreport.c b/ntoskrnl/io/pnpmgr/pnpreport.c index 91b5c07a10a..206fccfa251 100644 --- a/ntoskrnl/io/pnpmgr/pnpreport.c +++ b/ntoskrnl/io/pnpmgr/pnpreport.c @@ -207,7 +207,7 @@ IoReportDetectedDevice(IN PDRIVER_OBJECT DriverObject, { /* Create the PDO */ Status = PnpRootCreateDevice(&ServiceName, - DriverObject, + NULL, &Pdo, NULL); if (!NT_SUCCESS(Status)) @@ -229,6 +229,9 @@ IoReportDetectedDevice(IN PDRIVER_OBJECT DriverObject, return Status; } + /* We're enumerated already */ + IopDeviceNodeSetFlag(DeviceNode, DNF_ENUMERATED); + /* We don't call AddDevice for devices reported this way */ IopDeviceNodeSetFlag(DeviceNode, DNF_ADDED); @@ -335,6 +338,10 @@ IoReportDetectedDevice(IN PDRIVER_OBJECT DriverObject, /* Close the instance key handle */ ZwClose(InstanceKey); + /* Register the given DO with PnP root if required */ + if (DeviceObject && *DeviceObject) + PnpRootRegisterDevice(*DeviceObject); + /* Report the device's enumeration to umpnpmgr */ IopQueueTargetDeviceEvent(&GUID_DEVICE_ENUMERATED, &DeviceNode->InstancePath);