PspSetProcessDefaultHardErrorMode
VOID __stdcall PspSetProcessDefaultHardErrorMode(
_EPROCESS *Process,
_ETHREAD *CurrentThread,
UINT64 DefaultHardErrorMode){
unsigned int v3;
_EX_PUSH_LOCK *p_ProcessLock;
unsigned int v7;
v3 = DefaultHardErrorMode;
--CurrentThread->Tcb.KernelApcDisable;
p_ProcessLock = &Process->ProcessLock;
ExAcquirePushLockExclusiveEx(&Process->ProcessLock, 0i64);
if( Process->DefaultHardErrorProcessing != v3 )
{
Process->DefaultHardErrorProcessing = v3;
v7 = (v3 >> 2) & 1;
if( Process->WoW64Process )
v7 = 1;
KeSetAutoAlignmentProcess(&Process->Pcb, v7);
}
if( (_InterlockedExchangeAdd64(&p_ProcessLock->_bf_0, 0xFFFFFFFFFFFFFFFFui64) & 6) == 2 )
ExfTryToWakePushLock(p_ProcessLock);
KeAbPostRelease(p_ProcessLock);
KeLeaveCriticalRegionThread(&CurrentThread->Tcb);
}Referenced by:
NtSetInformationProcess