mirror of
https://github.com/reactos/reactos.git
synced 2025-08-03 05:55:48 +00:00
[NTOSKRNL]
- Store the allocated resources for reported devices svn path=/trunk/; revision=46842
This commit is contained in:
parent
26d1db9190
commit
5d6b19c9a0
1 changed files with 16 additions and 3 deletions
|
@ -266,9 +266,6 @@ IoReportDetectedDevice(IN PDRIVER_OBJECT DriverObject,
|
|||
/* Write the resource information to the registry */
|
||||
IopSetDeviceInstanceData(InstanceKey, DeviceNode);
|
||||
|
||||
/* Close the instance key handle */
|
||||
ZwClose(InstanceKey);
|
||||
|
||||
/* If the caller didn't get the resources assigned for us, do it now */
|
||||
if (!ResourceAssigned)
|
||||
{
|
||||
|
@ -278,7 +275,19 @@ IoReportDetectedDevice(IN PDRIVER_OBJECT DriverObject,
|
|||
{
|
||||
Status = IopTranslateDeviceResources(DeviceNode, RequiredLength);
|
||||
if (NT_SUCCESS(Status))
|
||||
{
|
||||
Status = IopUpdateResourceMapForPnPDevice(DeviceNode);
|
||||
if (NT_SUCCESS(Status) && DeviceNode->ResourceList)
|
||||
{
|
||||
RtlInitUnicodeString(&ValueName, L"AllocConfig");
|
||||
Status = ZwSetValueKey(InstanceKey,
|
||||
&ValueName,
|
||||
0,
|
||||
REG_RESOURCE_LIST,
|
||||
DeviceNode->ResourceList,
|
||||
CM_RESOURCE_LIST_SIZE(DeviceNode->ResourceList));
|
||||
}
|
||||
}
|
||||
}
|
||||
IopDeviceNodeClearFlag(DeviceNode, DNF_ASSIGNING_RESOURCES);
|
||||
|
||||
|
@ -286,10 +295,14 @@ IoReportDetectedDevice(IN PDRIVER_OBJECT DriverObject,
|
|||
if (!NT_SUCCESS(Status))
|
||||
{
|
||||
DPRINT("Assigning resources failed: 0x%x\n", Status);
|
||||
ZwClose(InstanceKey);
|
||||
return Status;
|
||||
}
|
||||
}
|
||||
|
||||
/* Close the instance key handle */
|
||||
ZwClose(InstanceKey);
|
||||
|
||||
/* Report the device's enumeration to umpnpmgr */
|
||||
IopQueueTargetDeviceEvent(&GUID_DEVICE_ENUMERATED,
|
||||
&DeviceNode->InstancePath);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue