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