Do not create a new device node if we already know the PDO

svn path=/trunk/; revision=27153
This commit is contained in:
Hervé Poussineau 2007-06-12 08:38:32 +00:00
parent 5b7bb95ec1
commit ad0d69c348
3 changed files with 7 additions and 2 deletions

View file

@ -135,7 +135,7 @@ IopGetDriverObject(
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;
}

View file

@ -694,7 +694,7 @@ IopDeviceStatus(PPLUGPLAY_CONTROL_STATUS_DATA StatusData)
if (DeviceObject == NULL)
return STATUS_NO_SUCH_DEVICE;
DeviceNode = ((PEXTENDED_DEVOBJ_EXTENSION)DeviceObject->DeviceObjectExtension)->DeviceNode;
DeviceNode = IopGetDeviceNode(DeviceObject);
switch (Operation)
{

View file

@ -2574,6 +2574,11 @@ IopInvalidateDeviceRelations(
*/
for (i = 0; i < DeviceRelations->Count; i++)
{
if (IopGetDeviceNode(DeviceRelations->Objects[i]) != NULL)
{
ObDereferenceObject(DeviceRelations->Objects[i]);
continue;
}
Status = IopCreateDeviceNode(
DeviceNode,
DeviceRelations->Objects[i],