KdpReportExceptionStateChange
UINT8 __stdcall KdpReportExceptionStateChange(
_EXCEPTION_RECORD *ExceptionRecord,
_FILETIME *ContextRecord,
UINT8 SecondChance){
UINT64 v6;
NTSTATUS v7;
_STRING OutMessageHeader;
_STRING OutMessageData;
_DBGKD_ANY_WAIT_STATE_CHANGE WaitStateChange;
OutMessageData = 0i64;
OutMessageHeader = 0i64;
memset(&WaitStateChange, 0i64, sizeof(WaitStateChange));
do
{
KdpSetCommonState(0x3030ui64, (_CONTEXT *)ContextRecord, &WaitStateChange);
KdpQuickMoveMemory((INT8 *)&WaitStateChange.u, (INT8 *)ExceptionRecord, 0x98ui64);
WaitStateChange.u.Exception.FirstChance = SecondChance == 0;
KdpSetContextState(&WaitStateChange, (_CONTEXT *)ContextRecord);
OutMessageHeader.Length = 240;
OutMessageHeader.Buffer = (char *)&WaitStateChange;
OutMessageData.Length = 0;
v7 = KdpSendWaitContinue(v6, &OutMessageHeader, &OutMessageData, (_CONTEXT *)ContextRecord);
}
while( v7 == 2 );
return v7;
}Referenced by:
KdpReport
KiFreezeTargetExecution