DECLHIDDEN(int) rtR3InitNativeFirst(uint32_t fFlags) { /* * Make sure we've got the handles of the two main Windows NT dlls. */ g_hModKernel32 = GetModuleHandleW(L"kernel32.dll"); if (g_hModKernel32 == NULL) return VERR_INTERNAL_ERROR_2; g_hModNtDll = GetModuleHandleW(L"ntdll.dll"); if (g_hModNtDll == NULL) return VERR_INTERNAL_ERROR_2; rtR3InitWindowsVersion(); int rc = VINF_SUCCESS; if (!(fFlags & RTR3INIT_FLAGS_UNOBTRUSIVE)) rc = rtR3InitNativeObtrusiveWorker(); /* * Resolve some kernel32.dll APIs we may need but aren't necessarily * present in older windows versions. */ g_pfnGetSystemWindowsDirectoryW = (PFNGETWINSYSDIR)GetProcAddress(g_hModKernel32, "GetSystemWindowsDirectoryW"); if (g_pfnGetSystemWindowsDirectoryW) g_pfnGetSystemWindowsDirectoryW = (PFNGETWINSYSDIR)GetProcAddress(g_hModKernel32, "GetWindowsDirectoryW"); return rc; }
DECLHIDDEN(int) rtR3InitNativeFirst(uint32_t fFlags) { /* * Make sure we've got the handles of the two main Windows NT dlls. */ g_hModKernel32 = GetModuleHandleW(L"kernel32.dll"); if (g_hModKernel32 == NULL) return VERR_INTERNAL_ERROR_2; g_hModNtDll = GetModuleHandleW(L"ntdll.dll"); if (g_hModNtDll == NULL) return VERR_INTERNAL_ERROR_2; rtR3InitWindowsVersion(); int rc = VINF_SUCCESS; if (!(fFlags & RTR3INIT_FLAGS_UNOBTRUSIVE)) rc = rtR3InitNativeObtrusiveWorker(); return rc; }