PiPnpRtlGatherContainerRemoveInfo

NTSTATUS __stdcall PiPnpRtlGatherContainerRemoveInfo(WCHAR *DeviceInstanceId, WCHAR *ContainerId, PVOID *Info){
  VOID **PoolWithTag; 
  int Object; 

  PoolWithTag = ExAllocatePoolWithTag(1ui64, 0x10ui64, 1198550608i64);
  *Info = PoolWithTag;
  if( !PoolWithTag )
  {
    Object = -1073741670;
LABEL_9:
    PiPnpRtlFreePanelRemoveInfo(*Info);
    *Info = 0i64;
    return Object;
  }
  *(_OWORD *)PoolWithTag = 0i64;
  Object = PiDmGetObject(1, DeviceInstanceId, (PI_DM_OBJECT **)PoolWithTag);
  if( (int)(Object + 0x80000000) >= 0 && Object != -1073741772 )
    goto LABEL_9;
  Object = PiDmGetObject(5, ContainerId, (PI_DM_OBJECT **)*Info + 1);
  if( Object == -1073741772 )
    Object = 0;
  if( Object < 0 )
    goto LABEL_9;
  return Object;
}

Referenced by:

PiPnpRtlCmActionCallback