KiTpWriteMemory
__int64 __fastcall KiTpWriteMemory(ULONG_PTR a1, char a2, char *a3, char *a4){
int v8;
UINT8 v9;
UINT64 Flags;
UINT64 Flagsa;
UINT64 Flagsb;
_KAPC_STATE ApcState;
memset(&ApcState, 0, sizeof(ApcState));
if( a1 )
KiStackAttachProcess((_KPROCESS *)a1, 0i64, &ApcState);
if( a2 == 1 )
{
v8 = KiTpWriteUmMemory(a1, a3, a4, 1ui64);
}
else if( (KiDynamicTraceEnabled & 4) != 0 )
{
LODWORD(Flags) = 1;
v8 = MmDbgCopyMemory((UINT64)a3, a4, 1ui64, 1ui64, Flags);
if( v8 < 0 )
{
LODWORD(Flagsa) = 5;
v9 = KdEnterDebugger(0i64, 0i64);
v8 = MmDbgCopyMemory((UINT64)a3, a4, 1ui64, 1ui64, Flagsa);
if( v8 < 0 )
{
LODWORD(Flagsb) = 69;
v8 = MmDbgCopyMemory((UINT64)a3, a4, 1ui64, 1ui64, Flagsb);
}
KdExitDebugger(v9);
}
}
else
{
v8 = -1073741790;
}
if( a1 )
KiUnstackDetachProcess(&ApcState, 0i64);
return(unsigned int)v8;
}Referenced by:
KiTpWriteBreakpoint