PnpQueryBusInformation

__int64 __fastcall PnpQueryBusInformation(__int64 a1){
  _DEVICE_OBJECT *v2; 
  NTSTATUS v3; 
  _DWORD *v4; 
  unsigned int v5; 
  _IO_STACK_LOCATION TopStackLocation; 
  UINT64 Information; 

  Information = 0i64;
  memset(&TopStackLocation, 0i64, sizeof(TopStackLocation));
  v2 = *(_DEVICE_OBJECT **)(a1 + 32);
  *(_WORD *)&TopStackLocation.MajorFunction = 5403;
  v3 = IopSynchronousCall(v2, &TopStackLocation, 3221225659i64, 0i64, &Information);
  v4 = (_DWORD *)Information;
  v5 = v3;
  if( v3 < 0 )
    v4 = 0i64;
  if( v3 < 0 )
  {
    *(_DWORD *)(a1 + 456) = -1;
    *(_WORD *)(a1 + 464) = -1;
    *(_DWORD *)(a1 + 460) = -16;
  }
  else
  {
    *(_WORD *)(a1 + 464) = PnpBusTypeGuidGetIndex(v4);
    *(_DWORD *)(a1 + 456) = v4[4];
    *(_DWORD *)(a1 + 460) = v4[5];
    ExFreePoolWithTag(v4, 0);
  }
  return v5;
}

Referenced by:

PiProcessNewDeviceNode