PiPnpRtlGatherPanelRemoveInfo

NTSTATUS __stdcall PiPnpRtlGatherPanelRemoveInfo(WCHAR *ObjectName, WCHAR *a2, PVOID *a3){
  VOID **PoolWithTag; 
  int Object; 

  PoolWithTag = ExAllocatePoolWithTag(1ui64, 0x10ui64, 1198550608i64);
  *a3 = PoolWithTag;
  if( !PoolWithTag )
  {
    Object = -1073741670;
LABEL_8:
    PiPnpRtlFreePanelRemoveInfo(*a3);
    *a3 = 0i64;
    return Object;
  }
  *(_OWORD *)PoolWithTag = 0i64;
  Object = PiDmGetObject(1, ObjectName, (PI_DM_OBJECT **)PoolWithTag);
  if( (int)(Object + 0x80000000) >= 0 && Object != -1073741772 )
    goto LABEL_8;
  Object = PiDmGetObject(6, a2, (PI_DM_OBJECT **)*a3 + 1);
  if( Object == -1073741772 )
    Object = 0;
  if( Object < 0 )
    goto LABEL_8;
  return Object;
}

Referenced by:

PiPnpRtlCmActionCallback