PiDmObjectUpdateCachedCmProperty
VOID __fastcall PiDmObjectUpdateCachedCmProperty(
INT64 a1,
WCHAR *a2,
WCHAR a3,
INT64 a4,
INT64 a5,
const WCHAR *SourceString,
UINT64 a7){
UINT64 v8;
INT64 v9;
UINT64 v10;
INT64 v11;
INT64 v12;
SIZE_T v13;
struct _UNICODE_STRING DestinationString;
GUID Guid;
if( (_DWORD)a1 == 1 )
{
Guid = 0i64;
DestinationString = 0i64;
if( (_DWORD)a4 == 9 )
{
if( (_DWORD)a7 )
{
if( (_DWORD)a5 == 1 && (unsigned int)a7 >= 2 )
{
RtlInitUnicodeString(&DestinationString, SourceString, a3);
if( RtlGUIDFromString(&DestinationString, &Guid) >= 0 )
{
LODWORD(v13) = 16;
v8 = (unsigned int)CmMapCmObjectTypeToPnpObjectType(1);
LODWORD(v12) = 13;
PiDmObjectUpdateCachedObjectProperty(
v8,
a2,
v9,
0i64,
(INT64)&DEVPKEY_Device_ClassGuid,
v12,
(WCHAR *)&Guid,
v13);
}
}
}
else
{
LODWORD(v13) = 0;
v10 = (unsigned int)CmMapCmObjectTypeToPnpObjectType(1);
LODWORD(v12) = 0;
PiDmObjectUpdateCachedObjectProperty(v10, a2, v11, 0i64, (INT64)&DEVPKEY_Device_ClassGuid, v12, 0i64, v13);
}
}
}
}Referenced by:
PiPnpRtlCmActionCallback