PiPnpRtlFreeInstallerClassChangeInfo
VOID __fastcall PiPnpRtlFreeInstallerClassChangeInfo(VOID *P, INT64 a2, CHAR *a3){
_PI_DM_OBJECT *v4;
_PI_DM_OBJECT *v5;
__int64 v6;
if( P )
{
v4 = *(_PI_DM_OBJECT **)P;
if( v4 )
PiDmObjectRelease(v4);
v5 = (_PI_DM_OBJECT *)*((_QWORD *)P + 1);
if( v5 )
PiDmObjectRelease(v5);
v6 = *((_QWORD *)P + 2);
if( v6 )
{
PiDmRemoveCacheReferenceForObject(*(_DWORD *)(v6 + 28), *(WCHAR **)(v6 + 16), a3);
PiDmObjectRelease(*((_PI_DM_OBJECT **)P + 2));
}
ExFreePoolWithTag(P, 0x47706E50u);
}
}Referenced by:
PiPnpRtlCmActionCallback
PiPnpRtlGatherInstallerClassChangeInfo