NtUnmapViewOfSectionEx
NTSTATUS __stdcall NtUnmapViewOfSectionEx(PVOID ProcessHandle, PVOID BaseAddress, UINT64 Flags){
char v3;
int v5;
KPROCESSOR_MODE v6;
NTSTATUS result;
NTSTATUS v8;
PVOID Object;
Object = 0i64;
v3 = Flags;
if( (Flags & 0xFFFFFFFC) != 0 )
return -1073741583;
v5 = (Flags & 2) << 25;
v6 = *((_BYTE *)KeGetCurrentThread() + 562);
if( v6 == 1 && (unsigned __int64)BaseAddress > 0x7FFFFFFEFFFFi64 )
return -1073741799;
result = ObReferenceObjectByHandleWithTag(
ProcessHandle,
8u,
(POBJECT_TYPE)PsProcessType,
v6,
0x77566D4Du,
&Object,
0i64);
if( result >= 0 )
{
v8 = MiUnmapViewOfSection((ULONG_PTR)Object, (unsigned __int64)BaseAddress, v3 & 1, v5);
ObfDereferenceObjectWithTag(Object, 0x77566D4Dui64);
return v8;
}
return result;
}Referenced by:
NtUnmapViewOfSection