Sorry, most devices were reinstalled at each boot, as the calculated crc32 for the parent was changing.

Prevent this by using only the parent InstancePath instead of the whole DEVICE_NODE structure

svn path=/trunk/; revision=18497
This commit is contained in:
Hervé Poussineau 2005-10-16 14:10:29 +00:00
parent abb25bef4f
commit 197d4d0964

View file

@ -1415,8 +1415,8 @@ IopGetParentIdPrefix(
goto cleanup;
/* 2. Create the ParentIdPrefix value */
currentByte = (PBYTE)DeviceNode->Parent;
for (i = 0; i < sizeof(DEVICE_NODE); i++, currentByte++)
currentByte = (PBYTE)DeviceNode->Parent->InstancePath.Buffer;
for (i = 0; i < DeviceNode->Parent->InstancePath.Length; i++, currentByte++)
crc32 = (crc32 >> 8) ^ crc32Table[*currentByte ^ (crc32 & 0xff)];
crc32 = ~crc32;
KeyValue.Buffer = (PWSTR)ParentIdPrefixInformation->Data;