The pointer to the list of fdo entries is never advanced
when the pdo is missing, causing a BSOD. When a device
is missing, advance the list pointer to the next entry.
Signed-off-by: Richard Turner <turnerr@ainfosec.com>
if (PdoGetDevicePnpState(Pdo) == Deleted)
PdoDestroy(Pdo);
- continue;
+ goto next;
}
if (PdoGetDevicePnpState(Pdo) == Present)
ObReferenceObject(PdoGetPhysicalDeviceObject(Pdo));
Relations->Objects[Relations->Count++] = PdoGetPhysicalDeviceObject(Pdo);
+next:
ListEntry = Next;
}