Files
vxunderground-VX-API/VX-API/RtlNtStatusToDosErrorViaImport.cpp
T
2022-09-14 09:15:37 -05:00

23 lines
573 B
C++

#include "Win32Helper.h"
DWORD RtlNtStatusToDosErrorViaImport(_In_ NTSTATUS Status)
{
typedef ULONG(NTAPI* RTLNTSTATUSTODOSERROR)(NTSTATUS);
RTLNTSTATUSTODOSERROR RtlNtStatusToDosError;
HMODULE hModule = NULL;
DWORD dwError = ERROR_SUCCESS;
hModule = GetModuleHandleEx2W(L"ntdll.dll");
if (hModule == NULL)
return -1;
RtlNtStatusToDosError = (RTLNTSTATUSTODOSERROR)GetProcAddressA((DWORD64)hModule, "RtlNtStatusToDosError");
if (!RtlNtStatusToDosError)
return -1;
dwError = RtlNtStatusToDosError(Status);
RtlNtStatusToDosError = NULL;
return dwError;
}