PiDmObjectUpdateCachedCmProperty
VOID __stdcall PiDmObjectUpdateCachedCmProperty(
_CM_OBJECT_TYPE CmObjectType,
WCHAR *CmObjectName,
_CM_REG_PROP CmRegProp,
UINT64 CmRegPropType,
UINT8 *PropertyBuffer,
UINT64 PropertySize,
UINT8 a7,
UINT64 a8){
UINT64 v9;
INT64 v10;
UINT64 v11;
INT64 v12;
INT64 v13;
UINT64 v14;
_UNICODE_STRING DestinationString;
_GUID Guid;
if( CmObjectType == CM_OBJECT_TYPE_DEVICE )
{
Guid = 0i64;
DestinationString = 0i64;
if( (_DWORD)CmRegPropType == 9 )
{
if( a7 )
{
if( (_DWORD)PropertyBuffer == 1 && a7 >= 2u )
{
RtlInitUnicodeString(&DestinationString, (PCWSTR)PropertySize);
if( RtlGUIDFromString(&DestinationString, &Guid) >= 0 )
{
LODWORD(v14) = 16;
v9 = (unsigned int)CmMapCmObjectTypeToPnpObjectType(CM_OBJECT_TYPE_DEVICE);
LODWORD(v13) = 13;
PiDmObjectUpdateCachedObjectProperty(
v9,
CmObjectName,
v10,
0i64,
(INT64)&DEVPKEY_Device_ClassGuid,
v13,
(WCHAR *)&Guid,
v14);
}
}
}
else
{
LODWORD(v14) = 0;
v11 = (unsigned int)CmMapCmObjectTypeToPnpObjectType(CM_OBJECT_TYPE_DEVICE);
LODWORD(v13) = 0;
PiDmObjectUpdateCachedObjectProperty(
v11,
CmObjectName,
v12,
0i64,
(INT64)&DEVPKEY_Device_ClassGuid,
v13,
0i64,
v14);
}
}
}
}Referenced by:
PiPnpRtlCmActionCallback