NtSetDefaultHardErrorPort
NTSTATUS __stdcall NtSetDefaultHardErrorPort(PVOID DefaultHardErrorPort){
__int64 *CurrentServerSiloGlobals;
NTSTATUS result;
void *v4;
PVOID Object;
CurrentServerSiloGlobals = PsGetCurrentServerSiloGlobals();
if( !SeSinglePrivilegeCheck(*(_QWORD *)&SeTcbPrivilege, *((_BYTE *)KeGetCurrentThread() + 562)) )
return -1073741727;
if( *((_DWORD *)CurrentServerSiloGlobals + 224) == 1 )
return -1073741823;
Object = 0i64;
result = ObReferenceObjectByHandle(
DefaultHardErrorPort,
0,
LpcPortObjectType,
*((_BYTE *)KeGetCurrentThread() + 562),
&Object,
0i64);
CurrentServerSiloGlobals[111] = (__int64)Object;
if( result >= 0 )
{
if( !PsIsCurrentThreadInServerSilo() )
ExReadyForErrors = 1;
*((_DWORD *)CurrentServerSiloGlobals + 224) = 1;
v4 = (void *)*((_QWORD *)KeGetCurrentThread() + 23);
CurrentServerSiloGlobals[110] = (__int64)v4;
ObfReferenceObject(v4);
return 0;
}
return result;
}Referenced by:
No references.