KdpGetBusData
INT64 __fastcall KdpGetBusData(_DWORD *a1, INT64 a2, UINT64 a3){
unsigned __int64 v5;
unsigned int v6;
UINT64 v7;
UINT64 v8;
UINT64 v9;
_BUS_DATA_TYPE v10;
NTSTATUS v11;
bool v12;
PVOID Buffer;
UINT64 Request;
__int64 v16[3];
UINT64 Actual;
Actual = a3;
v16[0] = 0i64;
v16[1] = (__int64)a1;
v5 = (unsigned int)a1[8];
LOWORD(v16[0]) = 56;
if( v5 > (unsigned __int64)(unsigned int)KdTransportMaxPacketSize - 56 )
LODWORD(v5) = KdTransportMaxPacketSize - 56;
v6 = *(unsigned __int16 *)(a2 + 2);
v7 = (unsigned int)a1[7];
v8 = (unsigned int)a1[6];
if( (unsigned int)v5 <= v6 )
v6 = v5;
v10 = a1[4];
v9 = (unsigned int)a1[5];
LODWORD(Request) = v6;
Buffer = *(PVOID *)(a2 + 8);
LODWORD(Actual) = v6;
v11 = KdpSysReadBusData(v10, v9, v8, v7, Buffer, Request, &Actual);
v12 = (unsigned int)Actual < v6;
a1[2] = v11;
if( v12 )
v6 = Actual;
a1[8] = v6;
*(_WORD *)a2 = v6;
return KdSendPacket(2i64, v16, a2, &KdpContext);
}Referenced by:
KdpSendWaitContinue