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