KdpGetContextEx
VOID __stdcall KdpGetContextEx(_DBGKD_MANIPULATE_STATE64 *m, _STRING *AdditionalData, _CONTEXT *Context){
unsigned int Unused;
unsigned int TraceFlag;
unsigned int Length;
unsigned int v8;
unsigned int v9;
int v10;
_QWORD v11[3];
Unused = m->u.GetContext.Unused;
TraceFlag = m->u.Continue2.ControlSet.TraceFlag;
v11[0] = 56i64;
v11[1] = m;
KdpGetContext(m, AdditionalData, Context);
m->u.ReadMemory.TransferCount = 0;
if( !m->ReturnStatus )
{
Length = AdditionalData->Length;
v8 = Length;
if( Unused < Length )
v8 = Unused;
v9 = Length - v8;
if( TraceFlag <= v9 )
v9 = TraceFlag;
if( v8 && v9 )
KdpQuickMoveMemory(AdditionalData->Buffer, &AdditionalData->Buffer[v8], v9);
m->u.GetContext.Unused = v8;
m->u.Continue2.ControlSet.TraceFlag = AdditionalData->Length;
m->u.ReadMemory.TransferCount = v9;
v10 = AdditionalData->Length;
if( v9 == v10 || v9 && v9 + v8 == v10 )
*(&KiSwapEvent + 480) = 1;
AdditionalData->Length = v9;
}
KdSendPacket(2i64, v11, AdditionalData, &KdpContext);
}Referenced by:
KdpSendWaitContinue