KdpSetContext
VOID __stdcall KdpSetContext(_DBGKD_MANIPULATE_STATE64 *m, _STRING *AdditionalData, _CONTEXT *Context){
__int64 Processor;
char *Buffer;
__int128 v6;
UINT64 ContextFlags;
v6 = 0i64;
LODWORD(ContextFlags) = 0;
Processor = m->Processor;
*((_QWORD *)&v6 + 1) = m;
LOWORD(v6) = 56;
if( (unsigned __int16)Processor < 0x500u && *(&KiProcessorBlock + Processor) && *(&KiSwapEvent + 480) )
{
m->ReturnStatus = 0;
if( (_WORD)Processor != (unsigned __int16)KeGetPcr()->Prcb.Number )
Context = (*(&KiProcessorBlock + Processor))->Context;
Buffer = AdditionalData->Buffer;
KdpSanitizeContextFlags((_CONTEXT *)Buffer, AdditionalData->Length, &ContextFlags);
KdpCopyContext(Context, (unsigned int)ContextFlags, (_CONTEXT *)Buffer);
}
else
{
m->ReturnStatus = -1073741823;
}
KdSendPacket(2i64, &v6, 0i64, &KdpContext);
}Referenced by:
KdpSendWaitContinue