- IopDeviceNodeSetFlag(DeviceNode, DNF_ASSIGNING_RESOURCES);
- Status = IopAssignDeviceResources(DeviceNode, &RequiredLength);
- if (NT_SUCCESS(Status))
- {
- 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);