mirror of
https://github.com/reactos/reactos.git
synced 2025-02-24 01:15:09 +00:00
Try to transform the ClassGUID string to a GUID only when the string exists in registry. Otherwise, set it to GUID_NULL
svn path=/trunk/; revision=19246
This commit is contained in:
parent
4aa521a7f6
commit
77421fd496
2 changed files with 11 additions and 7 deletions
|
@ -1185,6 +1185,8 @@ static LONG SETUP_CreateDevListFromEnumerator(
|
|||
if (pClassGuid)
|
||||
/* Skip this bad entry as we can't verify it */
|
||||
continue;
|
||||
/* Set a default GUID for this device */
|
||||
memcpy(&KeyGuid, &GUID_NULL, sizeof(GUID));
|
||||
}
|
||||
else if (rc != ERROR_SUCCESS)
|
||||
{
|
||||
|
@ -1196,13 +1198,14 @@ static LONG SETUP_CreateDevListFromEnumerator(
|
|||
RegCloseKey(hDeviceIdKey);
|
||||
return ERROR_GEN_FAILURE;
|
||||
}
|
||||
|
||||
KeyBuffer[37] = '\0'; /* Replace the } by a NULL character */
|
||||
if (UuidFromStringW(&KeyBuffer[1], &KeyGuid) != RPC_S_OK)
|
||||
else
|
||||
{
|
||||
RegCloseKey(hDeviceIdKey);
|
||||
return GetLastError();
|
||||
KeyBuffer[37] = '\0'; /* Replace the } by a NULL character */
|
||||
if (UuidFromStringW(&KeyBuffer[1], &KeyGuid) != RPC_S_OK)
|
||||
/* Bad GUID, skip the entry */
|
||||
continue;
|
||||
}
|
||||
|
||||
if (pClassGuid && !IsEqualIID(&KeyGuid, pClassGuid))
|
||||
{
|
||||
/* Skip this entry as it is not the right device class */
|
||||
|
@ -1259,7 +1262,7 @@ static LONG SETUP_CreateDevList(
|
|||
return rc;
|
||||
|
||||
/* If enumerator is provided, call directly SETUP_CreateDevListFromEnumerator.
|
||||
* Else, enumerate all enumerators all call SETUP_CreateDevListFromEnumerator
|
||||
* Else, enumerate all enumerators and call SETUP_CreateDevListFromEnumerator
|
||||
* for each one.
|
||||
*/
|
||||
if (Enumerator)
|
||||
|
|
|
@ -103,7 +103,8 @@ struct DeviceInfoElement /* Element of DeviceInfoSet.ListHead */
|
|||
* String which identifies the device. Can be NULL. If not NULL,
|
||||
* points into the Data field at the end of the structure
|
||||
* - ClassGuid
|
||||
* Identifies the class of this device. FIXME: can it be GUID_NULL?
|
||||
* Identifies the class of this device. It is GUID_NULL if the
|
||||
* device has not been installed
|
||||
* - CreationFlags
|
||||
* Is a combination of:
|
||||
* - DICD_GENERATE_ID
|
||||
|
|
Loading…
Reference in a new issue