Changeset 52940 in vbox
- Timestamp:
- Oct 3, 2014 6:40:54 PM (10 years ago)
- svn:sync-xref-src-repo-rev:
- 96380
- Location:
- trunk
- Files:
-
- 15 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/include/iprt/nt/nt.h
r52876 r52940 1105 1105 typedef PTEB_COMMON PTEB; 1106 1106 1107 #define NtCurrentPeb() (((PTEB)NtCurrentTeb())->ProcessEnvironmentBlock) 1107 #define RTNtCurrentTeb() ((PTEB)NtCurrentTeb()) 1108 #define RTNtCurrentPeb() (RTNtCurrentTeb()->ProcessEnvironmentBlock) 1109 #define NtCurrentPeb() RTNtCurrentPeb() 1110 #define RTNtCurrentThreadId() ((uint32_t)(uintptr_t)RTNtCurrentTeb()->ClientId.UniqueThread) 1108 1111 1109 1112 /** @} */ … … 1923 1926 NTSYSAPI VOID NTAPI LdrInitializeThunk(PVOID, PVOID, PVOID); 1924 1927 NTSYSAPI NTSTATUS NTAPI RtlExpandEnvironmentStrings_U(PVOID, PUNICODE_STRING, PUNICODE_STRING, PULONG); 1928 NTSYSAPI VOID NTAPI RtlExitProcess(NTSTATUS rcExitCode); 1929 NTSYSAPI VOID NTAPI RtlExitThread(NTSTATUS rcExitCode); 1925 1930 NTSYSAPI NTSTATUS NTAPI RtlDosApplyFileIsolationRedirection_Ustr(IN ULONG fFlags, 1926 1931 IN PCUNICODE_STRING pOrgName, … … 1932 1937 IN PSIZE_T pcbFilename OPTIONAL, 1933 1938 IN PSIZE_T pcbNeeded OPTIONAL); 1939 # ifdef IPRT_NT_USE_WINTERNL 1940 NTSYSAPI PVOID NTAPI RtlAllocateHeap(HANDLE hHeap, ULONG fFlags, SIZE_T cb); 1941 NTSYSAPI PVOID NTAPI RtlReAllocateHeap(HANDLE hHeap, ULONG fFlags, PVOID pvOld, SIZE_T cbNew); 1942 NTSYSAPI BOOLEAN NTAPI RtlFreeHeap(HANDLE hHeap, ULONG fFlags, PVOID pvMem); 1943 # endif /* IPRT_NT_USE_WINTERNL */ 1944 NTSYSAPI SIZE_T NTAPI RtlCompactHeap(HANDLE hHeap, ULONG fFlags); 1934 1945 NTSYSAPI VOID NTAPI RtlFreeUnicodeString(PUNICODE_STRING); 1946 NTSYSAPI SIZE_T NTAPI RtlSizeHeap(HANDLE hHeap, ULONG fFlags, PVOID pvMem); 1947 NTSYSAPI NTSTATUS NTAPI RtlGetLastNtStatus(VOID); 1948 NTSYSAPI ULONG NTAPI RtlGetLastWin32Error(VOID); 1949 NTSYSAPI VOID NTAPI RtlSetLastWin32Error(ULONG uError); 1950 NTSYSAPI VOID NTAPI RtlSetLastWin32ErrorAndNtStatusFromNtStatus(NTSTATUS rcNt); 1951 NTSYSAPI VOID NTAPI RtlRestoreLastWin32Error(ULONG uError); 1935 1952 1936 1953 RT_C_DECLS_END -
trunk/src/VBox/HostDrivers/Support/Makefile.kmk
r52600 r52940 399 399 # 400 400 VBoxSupLib_TEMPLATE = $(if-expr "$(KBUILD_TARGET)" == "win" && defined(VBOX_WITH_HARDENING),VBOXR3HARDENEDLIB,VBOXR3) 401 VBoxSupLib_SDKS.win = VBOX_NTDLL 401 402 VBoxSupLib_LDFLAGS.win.amd64 = -Entry:DllMainEntrypoint 402 403 VBoxSupLib_LDFLAGS.win.x86 = -Entry:DllMainEntrypoint -
trunk/src/VBox/HostDrivers/Support/SUPR3HardenedMain.cpp
r52680 r52940 228 228 for (;;) 229 229 #ifdef RT_OS_WINDOWS 230 ExitProcess(rcExit);230 RtlExitProcess(rcExit); 231 231 #else 232 232 _Exit(rcExit); … … 1478 1478 supR3HardenedFatalMsg("supR3HardenedMainInitRuntime", kSupInitOp_IPRT, VERR_MODULE_NOT_FOUND, 1479 1479 "LoadLibrary \"%s\" failed (rc=%d)", 1480 szPath, GetLastError());1480 szPath, RtlGetLastWin32Error()); 1481 1481 PFNRTR3INITEX pfnRTInitEx = (PFNRTR3INITEX)GetProcAddress(hMod, SUP_HARDENED_SYM("RTR3InitEx")); 1482 1482 if (!pfnRTInitEx) 1483 1483 supR3HardenedFatalMsg("supR3HardenedMainInitRuntime", kSupInitOp_IPRT, VERR_SYMBOL_NOT_FOUND, 1484 1484 "Entrypoint \"RTR3InitEx\" not found in \"%s\" (rc=%d)", 1485 szPath, GetLastError());1485 szPath, RtlGetLastWin32Error()); 1486 1486 1487 1487 PFNSUPR3PREINIT pfnSUPPreInit = (PFNSUPR3PREINIT)GetProcAddress(hMod, SUP_HARDENED_SYM("supR3PreInit")); … … 1489 1489 supR3HardenedFatalMsg("supR3HardenedMainInitRuntime", kSupInitOp_IPRT, VERR_SYMBOL_NOT_FOUND, 1490 1490 "Entrypoint \"supR3PreInit\" not found in \"%s\" (rc=%d)", 1491 szPath, GetLastError());1491 szPath, RtlGetLastWin32Error()); 1492 1492 1493 1493 #else … … 1620 1620 if (!hMod) 1621 1621 supR3HardenedFatal("supR3HardenedMainGetTrustedMain: LoadLibrary \"%s\" failed, rc=%d\n", 1622 szPath, GetLastError());1622 szPath, RtlGetLastWin32Error()); 1623 1623 FARPROC pfn = GetProcAddress(hMod, SUP_HARDENED_SYM("TrustedMain")); 1624 1624 if (!pfn) 1625 1625 supR3HardenedFatal("supR3HardenedMainGetTrustedMain: Entrypoint \"TrustedMain\" not found in \"%s\" (rc=%d)\n", 1626 szPath, GetLastError());1626 szPath, RtlGetLastWin32Error()); 1627 1627 return (PFNSUPTRUSTEDMAIN)pfn; 1628 1628 -
trunk/src/VBox/HostDrivers/Support/SUPR3HardenedVerify.cpp
r52790 r52940 411 411 else 412 412 { 413 int err = GetLastError();413 int err = RtlGetLastWin32Error(); 414 414 rc = supR3HardenedError(VERR_PATH_NOT_FOUND, fFatal, 415 415 "supR3HardenedVerifyDir: Failed to open \"%s\": err=%d\n", … … 525 525 else 526 526 { 527 int err = GetLastError();527 int err = RtlGetLastWin32Error(); 528 528 if ( !pFile->fOptional 529 529 || ( err != ERROR_FILE_NOT_FOUND … … 603 603 pVerified->hFile = hFileOpened; 604 604 else 605 CloseHandle((HANDLE)hFileOpened);605 NtClose((HANDLE)hFileOpened); 606 606 } 607 607 … … 677 677 if (!fLeaveFileOpen) 678 678 { 679 CloseHandle((HANDLE)pVerified->hFile);679 NtClose((HANDLE)pVerified->hFile); 680 680 pVerified->hFile = -1; 681 681 } … … 1740 1740 # endif 1741 1741 # endif 1742 CloseHandle(hVerify);1742 NtClose(hVerify); 1743 1743 } 1744 1744 else if (RT_SUCCESS(rc)) 1745 rc = RTErrInfoSetF(pErrInfo, RTErrConvertFromWin32( GetLastError()),1746 "Error %u trying to open (or duplicate handle for) '%s'", GetLastError(), pszFilename);1745 rc = RTErrInfoSetF(pErrInfo, RTErrConvertFromWin32(RtlGetLastWin32Error()), 1746 "Error %u trying to open (or duplicate handle for) '%s'", RtlGetLastWin32Error(), pszFilename); 1747 1747 if (RT_FAILURE(rc)) 1748 1748 return rc; -
trunk/src/VBox/HostDrivers/Support/win/SUPHardenedVerify-win.h
r52634 r52940 214 214 # include <iprt/string.h> 215 215 216 # define suplibHardenedAllocZ RTMemAllocZ217 # define suplibHardenedReAlloc RTMemRealloc218 # define suplibHardenedFree RTMemFree219 216 # define suplibHardenedMemComp memcmp 220 217 # define suplibHardenedMemCopy memcpy … … 227 224 # else /* IN_SUP_HARDENED_R3 */ 228 225 # include <iprt/mem.h> 229 # if 0226 # if 0 230 227 # define memcmp suplibHardenedMemComp 231 228 # define memcpy suplibHardenedMemCopy … … 236 233 # define strcmp suplibHardenedStrCmp 237 234 # define strncmp suplibHardenedStrNCmp 235 # endif 236 # endif /* IN_SUP_HARDENED_R3 */ 237 238 #endif /* SUP_CERTIFICATES_ONLY */ 239 240 RT_C_DECLS_END 241 238 242 #endif 239 DECLHIDDEN(void *) suplibHardenedAllocZ(size_t cb); 240 DECLHIDDEN(void *) suplibHardenedReAlloc(void *pvOld, size_t cbNew); 241 DECLHIDDEN(void) suplibHardenedFree(void *pv); 242 # endif /* IN_SUP_HARDENED_R3 */ 243 244 #endif /* SUP_CERTIFICATES_ONLY */ 245 246 RT_C_DECLS_END 247 248 #endif 249 243 -
trunk/src/VBox/HostDrivers/Support/win/SUPHardenedVerifyImage-win.cpp
r52907 r52940 1911 1911 && fFlags 1912 1912 && g_uNtVerCombined < SUP_MAKE_NT_VER_SIMPLE(6, 2) 1913 && GetLastError() == ERROR_INVALID_PARAMETER)1913 && RtlGetLastWin32Error() == ERROR_INVALID_PARAMETER) 1914 1914 { 1915 1915 fFlags = 0; … … 1917 1917 } 1918 1918 if (hMod == NULL) 1919 supR3HardenedFatal("Error loading '%s': %u [%ls]", pszName, GetLastError(), wszName);1919 supR3HardenedFatal("Error loading '%s': %u [%ls]", pszName, RtlGetLastWin32Error(), wszName); 1920 1920 return hMod; 1921 1921 } … … 1939 1939 #define RESOLVE_CRYPT32_API(a_Name, a_pfnType) \ 1940 1940 a_pfnType pfn##a_Name = (a_pfnType)GetProcAddress(hCrypt32, #a_Name); \ 1941 if (pfn##a_Name == NULL) supR3HardenedFatal("Error locating '" #a_Name "' in 'crypt32.dll': %u", GetLastError())1941 if (pfn##a_Name == NULL) supR3HardenedFatal("Error locating '" #a_Name "' in 'crypt32.dll': %u", RtlGetLastWin32Error()) 1942 1942 RESOLVE_CRYPT32_API(CertOpenStore, PFNCERTOPENSTORE); 1943 1943 RESOLVE_CRYPT32_API(CertCloseStore, PFNCERTCLOSESTORE); … … 2026 2026 HMODULE hSupLibMod = (HMODULE)supR3HardenedWinLoadLibrary(szPath, true /*fSystem32Only*/); 2027 2027 if (hSupLibMod == NULL) 2028 supR3HardenedFatal("Error loading '%s': %u", szPath, GetLastError());2028 supR3HardenedFatal("Error loading '%s': %u", szPath, RtlGetLastWin32Error()); 2029 2029 # endif 2030 2030 … … 2036 2036 g_iTlsWinVerifyTrustRecursion = iTls; 2037 2037 else 2038 supR3HardenedError( GetLastError(), false /*fFatal*/, "TlsAlloc failed");2038 supR3HardenedError(RtlGetLastWin32Error(), false /*fFatal*/, "TlsAlloc failed"); 2039 2039 2040 2040 /* … … 2046 2046 g_pfn##a_Name = (a_pfnType)GetProcAddress(hWintrust, #a_Name); \ 2047 2047 if (g_pfn##a_Name == NULL && (a_uMinWinVer) < g_uNtVerCombined) \ 2048 supR3HardenedFatal("Error locating '" #a_Name "' in 'Wintrust.dll': %u", GetLastError()); \2048 supR3HardenedFatal("Error locating '" #a_Name "' in 'Wintrust.dll': %u", RtlGetLastWin32Error()); \ 2049 2049 } while (0) 2050 2050 2051 2051 PFNWINVERIFYTRUST pfnWinVerifyTrust = (PFNWINVERIFYTRUST)GetProcAddress(hWintrust, "WinVerifyTrust"); 2052 2052 if (!pfnWinVerifyTrust) 2053 supR3HardenedFatal("Error locating 'WinVerifyTrust' in 'Wintrust.dll': %u", GetLastError());2053 supR3HardenedFatal("Error locating 'WinVerifyTrust' in 'Wintrust.dll': %u", RtlGetLastWin32Error()); 2054 2054 2055 2055 RESOLVE_CRYPT_API(CryptCATAdminAcquireContext, PFNCRYPTCATADMINACQUIRECONTEXT, 0); … … 2374 2374 if (!fFreshContext) 2375 2375 { 2376 SUP_DPRINTF(("supR3HardNtViCallWinVerifyTrustCatFile: Retrying with fresh context (CryptCATAdminEnumCatalogFromHash -> %u; iCat=%#x)\n", GetLastError(), iCat));2376 SUP_DPRINTF(("supR3HardNtViCallWinVerifyTrustCatFile: Retrying with fresh context (CryptCATAdminEnumCatalogFromHash -> %u; iCat=%#x)\n", RtlGetLastWin32Error(), iCat)); 2377 2377 if (hCatInfoPrev != NULL) 2378 2378 g_pfnCryptCATAdminReleaseCatalogContext(hCatAdmin, hCatInfoPrev, 0 /*dwFlags*/); … … 2381 2381 } 2382 2382 if (iCat == 0) 2383 SUP_DPRINTF(("supR3HardNtViCallWinVerifyTrustCatFile: CryptCATAdminEnumCatalogFromHash failed %u\n", GetLastError()));2383 SUP_DPRINTF(("supR3HardNtViCallWinVerifyTrustCatFile: CryptCATAdminEnumCatalogFromHash failed %u\n", RtlGetLastWin32Error())); 2384 2384 break; 2385 2385 } … … 2445 2445 else 2446 2446 { 2447 rc = RTErrInfoSetF(pErrInfo, RTErrConvertFromWin32( GetLastError()),2447 rc = RTErrInfoSetF(pErrInfo, RTErrConvertFromWin32(RtlGetLastWin32Error()), 2448 2448 "CryptCATCatalogInfoFromContext failed: %d [file=%s]", 2449 GetLastError(), pwszName);2449 RtlGetLastWin32Error(), pwszName); 2450 2450 SUP_DPRINTF(("supR3HardNtViCallWinVerifyTrustCatFile: CryptCATCatalogInfoFromContext failed\n")); 2451 2451 } … … 2461 2461 } 2462 2462 else 2463 rc = RTErrInfoSetF(pErrInfo, RTErrConvertFromWin32( GetLastError()),2464 "CryptCATAdminCalcHashFromFileHandle[2] failed: %d [file=%s]", GetLastError(), pwszName);2463 rc = RTErrInfoSetF(pErrInfo, RTErrConvertFromWin32(RtlGetLastWin32Error()), 2464 "CryptCATAdminCalcHashFromFileHandle[2] failed: %d [file=%s]", RtlGetLastWin32Error(), pwszName); 2465 2465 2466 2466 if (!ASMAtomicCmpXchgPtr(&s_aHashes[i].hCachedCatAdmin, hCatAdmin, NULL)) … … 2469 2469 } 2470 2470 else 2471 rc = RTErrInfoSetF(pErrInfo, RTErrConvertFromWin32( GetLastError()),2472 "CryptCATAdminAcquireContext[2] failed: %d [file=%s]", GetLastError(), pwszName);2471 rc = RTErrInfoSetF(pErrInfo, RTErrConvertFromWin32(RtlGetLastWin32Error()), 2472 "CryptCATAdminAcquireContext[2] failed: %d [file=%s]", RtlGetLastWin32Error(), pwszName); 2473 2473 iPolicy++; 2474 2474 } while ( fTryNextPolicy … … 2528 2528 else 2529 2529 { 2530 uint32_t const idCurrentThread = GetCurrentThreadId();2530 uint32_t const idCurrentThread = RTNtCurrentThreadId(); 2531 2531 fNoRecursion = ASMAtomicCmpXchgU32(&g_idActiveThread, idCurrentThread, UINT32_MAX); 2532 2532 } … … 2592 2592 && ( g_iTlsWinVerifyTrustRecursion != UINT32_MAX 2593 2593 ? (uintptr_t)TlsGetValue(g_iTlsWinVerifyTrustRecursion) == 0 2594 : g_idActiveThread != GetCurrentThreadId() );2594 : g_idActiveThread != RTNtCurrentThreadId() ); 2595 2595 } 2596 2596 -
trunk/src/VBox/HostDrivers/Support/win/SUPHardenedVerifyProcess-win.cpp
r52875 r52940 1606 1606 pEntry->pszName, cbBits, cbBits); 1607 1607 1608 pEntry->pbBits = (uint8_t *) suplibHardenedAllocZ(cbBits);1608 pEntry->pbBits = (uint8_t *)RTMemAllocZ(cbBits); 1609 1609 if (!pEntry->pbBits) 1610 1610 return supHardNtVpSetInfo1(pErrInfo, VERR_SUP_VP_NO_MEMORY, "Failed to allocate %zu bytes for image %s.", … … 1629 1629 if (pEntry->pbBits) 1630 1630 { 1631 suplibHardenedFree(pEntry->pbBits);1631 RTMemFree(pEntry->pbBits); 1632 1632 pEntry->pbBits = NULL; 1633 1633 } … … 1926 1926 int rc; 1927 1927 ULONG cbUniStr = sizeof(UNICODE_STRING) + RTPATH_MAX * sizeof(RTUTF16); 1928 PUNICODE_STRING pUniStr = (PUNICODE_STRING) suplibHardenedAllocZ(cbUniStr);1928 PUNICODE_STRING pUniStr = (PUNICODE_STRING)RTMemAllocZ(cbUniStr); 1929 1929 if (!pUniStr) 1930 1930 return supHardNtVpSetInfo2(pThis, VERR_SUP_VP_NO_MEMORY, … … 1947 1947 rc = supHardNtVpSetInfo2(pThis, VERR_SUP_VP_NT_QI_PROCESS_NM_ERROR, 1948 1948 "NtQueryInformationProcess/ProcessImageFileName failed: %#x", rcNt); 1949 suplibHardenedFree(pUniStr);1949 RTMemFree(pUniStr); 1950 1950 if (RT_FAILURE(rc)) 1951 1951 return rc; … … 2108 2108 * Allocate and initialize memory for the state. 2109 2109 */ 2110 PSUPHNTVPSTATE pThis = (PSUPHNTVPSTATE) suplibHardenedAllocZ(sizeof(*pThis));2110 PSUPHNTVPSTATE pThis = (PSUPHNTVPSTATE)RTMemAllocZ(sizeof(*pThis)); 2111 2111 if (pThis) 2112 2112 { … … 2137 2137 supHardNTLdrCacheDeleteEntry(&pThis->aImages[i].CacheEntry); 2138 2138 #endif 2139 suplibHardenedFree(pThis);2139 RTMemFree(pThis); 2140 2140 } 2141 2141 else -
trunk/src/VBox/HostDrivers/Support/win/SUPR3HardenedMain-win.cpp
r52906 r52940 92 92 BOOL fRcAssert = (a_Expr); \ 93 93 if (fRcAssert == FALSE) \ 94 supR3HardenedFatal("%s: %s -> %#x\n", __FUNCTION__, #a_Expr, GetLastError()); \94 supR3HardenedFatal("%s: %s -> %#x\n", __FUNCTION__, #a_Expr, RtlGetLastWin32Error()); \ 95 95 } while (0) 96 96 … … 321 321 322 322 /** 323 * Allocate zero filled memory on the heap.324 *325 * @returns Pointer to the memory. Will never return NULL, triggers a fatal326 * error instead.327 * @param cb The number of bytes to allocate.328 */329 DECLHIDDEN(void *) suplibHardenedAllocZ(size_t cb)330 {331 void *pv = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, cb);332 if (!pv)333 supR3HardenedFatal("HeapAlloc failed to allocate %zu bytes.\n", cb);334 return pv;335 }336 337 338 /**339 * Reallocates memory on the heap.340 *341 * @returns Pointer to the resized memory block. Will never return NULL,342 * triggers a fatal error instead.343 * @param pvOld The old memory block.344 * @param cbNew The new block size.345 */346 DECLHIDDEN(void *) suplibHardenedReAlloc(void *pvOld, size_t cbNew)347 {348 if (!pvOld)349 return suplibHardenedAllocZ(cbNew);350 void *pv = HeapReAlloc(GetProcessHeap(), 0 /*dwFlags*/, pvOld, cbNew);351 if (!pv)352 supR3HardenedFatal("HeapReAlloc failed to allocate %zu bytes.\n", cbNew);353 return pv;354 }355 356 357 /**358 * Frees memory allocated by suplibHardenedAlloc, suplibHardenedAllocZ or359 * suplibHardenedReAlloc.360 *361 * @param pv Pointer to the memeory to be freed.362 */363 DECLHIDDEN(void) suplibHardenedFree(void *pv)364 {365 if (pv)366 HeapFree(GetProcessHeap(), 0 /* dwFlags*/, pv);367 }368 369 370 /**371 323 * Wrapper around LoadLibraryEx that deals with the UTF-8 to UTF-16 conversion 372 324 * and supplies the right flags. … … 406 358 && fFlags 407 359 && g_uNtVerCombined < SUP_MAKE_NT_VER_SIMPLE(6, 2) 408 && GetLastError() == ERROR_INVALID_PARAMETER)360 && RtlGetLastWin32Error() == ERROR_INVALID_PARAMETER) 409 361 pvRet = (void *)LoadLibraryExW(wszPath, NULL /*hFile*/, 0); 410 362 … … 543 495 * Allocate and initalize a new entry. 544 496 */ 545 PVERIFIERCACHEENTRY pEntry = (PVERIFIERCACHEENTRY)HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, 546 sizeof(VERIFIERCACHEENTRY) + pUniStr->Length); 497 PVERIFIERCACHEENTRY pEntry = (PVERIFIERCACHEENTRY)RTMemAllocZ(sizeof(VERIFIERCACHEENTRY) + pUniStr->Length); 547 498 if (pEntry) 548 499 { … … 589 540 590 541 /* Duplicate entry (may happen due to races). */ 591 HeapFree(GetProcessHeap(), 0 /* dwFlags*/,pEntry);542 RTMemFree(pEntry); 592 543 } 593 544 NtClose(hFile); … … 761 712 uint32_t cbNeeded = RT_OFFSETOF(VERIFIERCACHEIMPORT, szName[cbNameAligned]) 762 713 + (pawcDir ? (cwcDir + 1) * sizeof(RTUTF16) : 0); 763 PVERIFIERCACHEIMPORT pImport = (PVERIFIERCACHEIMPORT) HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY,cbNeeded);714 PVERIFIERCACHEIMPORT pImport = (PVERIFIERCACHEIMPORT)RTMemAllocZ(cbNeeded); 764 715 if (pImport) 765 716 { … … 994 945 SUP_DPRINTF(("supR3HardenedWinVerifyCacheProcessImportTodos: '%s' is in the cache.\n", pCur->szName)); 995 946 996 HeapFree(GetProcessHeap(), 0 /* dwFlags*/,pCur);947 RTMemFree(pCur); 997 948 } while (pTodo); 998 949 } … … 1576 1527 if (fImage || fExecMap || fExecProt) 1577 1528 { 1578 DWORD dwSavedLastError = GetLastError();1529 DWORD dwSavedLastError = RtlGetLastWin32Error(); 1579 1530 1580 1531 bool fCallRealApi; … … 1584 1535 //SUP_DPRINTF(("supR3HardenedMonitor_NtCreateSection: 2 rcNt=%#x fCallRealApi=%#x\n", rcNt, fCallRealApi)); 1585 1536 1586 SetLastError(dwSavedLastError);1537 RtlRestoreLastWin32Error(dwSavedLastError); 1587 1538 1588 1539 if (!NT_SUCCESS(rcNt)) … … 1656 1607 supR3HardenedMonitor_LdrLoadDll(PWSTR pwszSearchPath, PULONG pfFlags, PUNICODE_STRING pName, PHANDLE phMod) 1657 1608 { 1658 DWORD dwSavedLastError = GetLastError();1609 DWORD dwSavedLastError = RtlGetLastWin32Error(); 1659 1610 NTSTATUS rcNt; 1660 1611 … … 1671 1622 supR3HardenedError(VINF_SUCCESS, false, "supR3HardenedMonitor_LdrLoadDll: name is NULL or have a zero length.\n"); 1672 1623 SUP_DPRINTF(("supR3HardenedMonitor_LdrLoadDll: returns rcNt=%#x (pName=%p)\n", STATUS_INVALID_PARAMETER, pName)); 1673 SetLastError(dwSavedLastError);1624 RtlRestoreLastWin32Error(dwSavedLastError); 1674 1625 return STATUS_INVALID_PARAMETER; 1675 1626 } … … 1685 1636 supR3HardenedError(VINF_SUCCESS, false, "supR3HardenedMonitor_LdrLoadDll: too long name: %#x bytes\n", pName->Length); 1686 1637 SUP_DPRINTF(("supR3HardenedMonitor_LdrLoadDll: returns rcNt=%#x\n", STATUS_NAME_TOO_LONG)); 1687 SetLastError(dwSavedLastError);1638 RtlRestoreLastWin32Error(dwSavedLastError); 1688 1639 return STATUS_NAME_TOO_LONG; 1689 1640 } … … 1725 1676 { 1726 1677 SUP_DPRINTF(("supR3HardenedMonitor_LdrLoadDll: returns rcNt=%#x\n", rcNt)); 1727 SetLastError(dwSavedLastError);1678 RtlRestoreLastWin32Error(dwSavedLastError); 1728 1679 return rcNt; 1729 1680 } … … 1794 1745 cwcName, pawcName); 1795 1746 SUP_DPRINTF(("supR3HardenedMonitor_LdrLoadDll: returns rcNt=%#x\n", STATUS_OBJECT_NAME_INVALID)); 1796 SetLastError(dwSavedLastError);1747 RtlRestoreLastWin32Error(dwSavedLastError); 1797 1748 return STATUS_OBJECT_NAME_INVALID; 1798 1749 } … … 1820 1771 { 1821 1772 SUP_DPRINTF(("supR3HardenedMonitor_LdrLoadDll: returns rcNt=%#x\n", rcNt)); 1822 SetLastError(dwSavedLastError);1773 RtlRestoreLastWin32Error(dwSavedLastError); 1823 1774 return rcNt; 1824 1775 } … … 1834 1785 { 1835 1786 supR3HardenedError(VINF_SUCCESS, false, 1836 "supR3HardenedMonitor_LdrLoadDll: GetSystemDirectoryW failed: %u\n", GetLastError());1787 "supR3HardenedMonitor_LdrLoadDll: GetSystemDirectoryW failed: %u\n", RtlGetLastWin32Error()); 1837 1788 SUP_DPRINTF(("supR3HardenedMonitor_LdrLoadDll: returns rcNt=%#x\n", STATUS_UNEXPECTED_IO_ERROR)); 1838 SetLastError(dwSavedLastError);1789 RtlRestoreLastWin32Error(dwSavedLastError); 1839 1790 return STATUS_UNEXPECTED_IO_ERROR; 1840 1791 } … … 1844 1795 "supR3HardenedMonitor_LdrLoadDll: Name too long (system32): %.*ls\n", cwcName, pawcName); 1845 1796 SUP_DPRINTF(("supR3HardenedMonitor_LdrLoadDll: returns rcNt=%#x\n", STATUS_NAME_TOO_LONG)); 1846 SetLastError(dwSavedLastError);1797 RtlRestoreLastWin32Error(dwSavedLastError); 1847 1798 return STATUS_NAME_TOO_LONG; 1848 1799 } … … 1895 1846 SUP_DPRINTF(("supR3HardenedMonitor_LdrLoadDll: returns rcNt=%#x '%ls'\n", rcNt, wszPath)); 1896 1847 } 1897 SetLastError(dwSavedLastError);1848 RtlRestoreLastWin32Error(dwSavedLastError); 1898 1849 return rcNt; 1899 1850 } … … 1903 1854 else 1904 1855 { 1905 DWORD dwErr = GetLastError();1856 DWORD dwErr = RtlGetLastWin32Error(); 1906 1857 SUP_DPRINTF(("supR3HardenedMonitor_LdrLoadDll: error opening '%ls': %u\n", wszPath, dwErr)); 1907 1858 } … … 1914 1865 (unsigned)pName->Length / sizeof(WCHAR), pName->Buffer, pfFlags ? *pfFlags : UINT32_MAX, pwszSearchPath, 1915 1866 !((uintptr_t)pwszSearchPath & 1) && (uintptr_t)pwszSearchPath >= 0x2000U ? pwszSearchPath : L"<flags>")); 1916 SetLastError(dwSavedLastError);1867 RtlRestoreLastWin32Error(dwSavedLastError); 1917 1868 rcNt = g_pfnLdrLoadDllReal(pwszSearchPath, pfFlags, pName, phMod); 1918 1869 … … 1920 1871 * Log the result and process pending WinVerifyTrust work if we can. 1921 1872 */ 1922 dwSavedLastError = GetLastError();1873 dwSavedLastError = RtlGetLastWin32Error(); 1923 1874 1924 1875 if (NT_SUCCESS(rcNt) && phMod) … … 1928 1879 supR3HardenedWinVerifyCacheProcessWvtTodos(); 1929 1880 1930 SetLastError(dwSavedLastError);1881 RtlRestoreLastWin32Error(dwSavedLastError); 1931 1882 1932 1883 return rcNt; … … 2157 2108 if (RT_FAILURE(rc)) 2158 2109 supR3HardenedFatal("supR3HardenedWinCreateParentWatcherThread: RTThreadCreate failed: %Rrc\n", rc); 2110 } 2111 2112 2113 /** 2114 * Simplify NtProtectVirtualMemory interface. 2115 * 2116 * Modifies protection for the current process. Caller must know the current 2117 * protection as it's not returned. 2118 * 2119 * @returns NT status code. 2120 * @param pvMem The memory to change protection for. 2121 * @param cbMem The amount of memory to change. 2122 * @param fNewProt The new protection. 2123 */ 2124 static NTSTATUS supR3HardenedWinProtectMemory(PVOID pvMem, SIZE_T cbMem, ULONG fNewProt) 2125 { 2126 ULONG fOldProt = 0; 2127 return NtProtectVirtualMemory(NtCurrentProcess(), &pvMem, &cbMem, fNewProt, &fOldProt); 2159 2128 } 2160 2129 … … 2291 2260 *puJmpTab = (uintptr_t)supR3HardenedMonitor_NtCreateSection; 2292 2261 2293 DWORD dwOldProt; 2294 SUPR3HARDENED_ASSERT_WIN32_SUCCESS(VirtualProtectEx(NtCurrentProcess(), pbNtCreateSection, 16, 2295 PAGE_EXECUTE_READWRITE, &dwOldProt)); 2262 SUPR3HARDENED_ASSERT_NT_SUCCESS(supR3HardenedWinProtectMemory(pbNtCreateSection, 16, PAGE_EXECUTE_READWRITE)); 2263 2296 2264 pbNtCreateSection[0] = 0xff; 2297 2265 pbNtCreateSection[1] = 0x25; 2298 2266 *(uint32_t *)&pbNtCreateSection[2] = (uint32_t)((uintptr_t)puJmpTab - (uintptr_t)&pbNtCreateSection[2+4]); 2299 2267 2300 SUPR3HARDENED_ASSERT_WIN32_SUCCESS(VirtualProtectEx(NtCurrentProcess(), pbNtCreateSection, 16, 2301 PAGE_EXECUTE_READ, &dwOldProt)); 2268 SUPR3HARDENED_ASSERT_NT_SUCCESS(supR3HardenedWinProtectMemory(pbNtCreateSection, 16, PAGE_EXECUTE_READ)); 2302 2269 puJmpTab++; 2303 2270 … … 2368 2335 *(PFNRT *)&g_pfnNtCreateSectionReal = pfnCallReal; 2369 2336 2370 DWORD dwOldProt; 2371 SUPR3HARDENED_ASSERT_WIN32_SUCCESS(VirtualProtectEx(NtCurrentProcess(), pbNtCreateSection, 16, 2372 PAGE_EXECUTE_READWRITE, &dwOldProt)); 2337 SUPR3HARDENED_ASSERT_NT_SUCCESS(supR3HardenedWinProtectMemory(pbNtCreateSection, 16, PAGE_EXECUTE_READWRITE)); 2338 2373 2339 pbNtCreateSection[0] = 0xe9; 2374 2340 *(uint32_t *)&pbNtCreateSection[1] = (uintptr_t)supR3HardenedMonitor_NtCreateSection 2375 2341 - (uintptr_t)&pbNtCreateSection[1+4]; 2376 2342 2377 SUPR3HARDENED_ASSERT_ WIN32_SUCCESS(VirtualProtectEx(NtCurrentProcess(), pbNtCreateSection, 16,2378 PAGE_EXECUTE_READ, &dwOldProt)); 2343 SUPR3HARDENED_ASSERT_NT_SUCCESS(supR3HardenedWinProtectMemory(pbNtCreateSection, 16, PAGE_EXECUTE_READ)); 2344 2379 2345 #endif 2380 2346 … … 2575 2541 *puJmpTab = (uintptr_t)supR3HardenedMonitor_LdrLoadDll; 2576 2542 2577 SUPR3HARDENED_ASSERT_ WIN32_SUCCESS(VirtualProtectEx(NtCurrentProcess(), pbLdrLoadDll, 16, PAGE_EXECUTE_READWRITE, &dwOldProt));2543 SUPR3HARDENED_ASSERT_NT_SUCCESS(supR3HardenedWinProtectMemory(pbLdrLoadDll, 16, PAGE_EXECUTE_READWRITE)); 2578 2544 2579 2545 Assert(offJmpBack >= 6); … … 2582 2548 *(uint32_t *)&pbLdrLoadDll[2] = (uint32_t)((uintptr_t)puJmpTab - (uintptr_t)&pbLdrLoadDll[2+4]); 2583 2549 2584 SUPR3HARDENED_ASSERT_ WIN32_SUCCESS(VirtualProtectEx(NtCurrentProcess(), pbLdrLoadDll, 16, PAGE_EXECUTE_READ, &dwOldProt));2550 SUPR3HARDENED_ASSERT_NT_SUCCESS(supR3HardenedWinProtectMemory(pbLdrLoadDll, 16, PAGE_EXECUTE_READ)); 2585 2551 puJmpTab++; 2586 2552 … … 2706 2672 2707 2673 /* Patch LdrLoadDLl. */ 2708 SUPR3HARDENED_ASSERT_WIN32_SUCCESS(VirtualProtectEx(NtCurrentProcess(), pbLdrLoadDll, 16, 2709 PAGE_EXECUTE_READWRITE, &dwOldProt)); 2674 SUPR3HARDENED_ASSERT_NT_SUCCESS(supR3HardenedWinProtectMemory(pbLdrLoadDll, 16, PAGE_EXECUTE_READWRITE)); 2710 2675 Assert(offJmpBack >= 5); 2711 2676 pbLdrLoadDll[0] = 0xe9; 2712 2677 *(uint32_t *)&pbLdrLoadDll[1] = (uintptr_t)supR3HardenedMonitor_LdrLoadDll - (uintptr_t)&pbLdrLoadDll[1+4]; 2713 2678 2714 SUPR3HARDENED_ASSERT_ WIN32_SUCCESS(VirtualProtectEx(NtCurrentProcess(), pbLdrLoadDll, 16, PAGE_EXECUTE_READ, &dwOldProt));2679 SUPR3HARDENED_ASSERT_NT_SUCCESS(supR3HardenedWinProtectMemory(pbLdrLoadDll, 16, PAGE_EXECUTE_READ)); 2715 2680 #endif 2716 2681 … … 2718 2683 * Seal the rwx page. 2719 2684 */ 2720 SUPR3HARDENED_ASSERT_WIN32_SUCCESS(VirtualProtectEx(NtCurrentProcess(), g_abSupHardReadWriteExecPage, PAGE_SIZE, 2721 PAGE_EXECUTE_READ, &dwOldProt)); 2685 SUPR3HARDENED_ASSERT_NT_SUCCESS(supR3HardenedWinProtectMemory(g_abSupHardReadWriteExecPage, PAGE_SIZE, PAGE_EXECUTE_READ)); 2722 2686 } 2723 2687 … … 2889 2853 * Create a security descriptor with the above ACL. 2890 2854 */ 2891 PSECURITY_DESCRIPTOR pSecDesc = (PSECURITY_DESCRIPTOR) suplibHardenedAllocZ(SECURITY_DESCRIPTOR_MIN_LENGTH);2855 PSECURITY_DESCRIPTOR pSecDesc = (PSECURITY_DESCRIPTOR)RTMemAllocZ(SECURITY_DESCRIPTOR_MIN_LENGTH); 2892 2856 pCleanup->pSecDesc = pSecDesc; 2893 2857 … … 2991 2955 "Command line is too long (%u chars)!", cwcCmdLine); 2992 2956 2993 PRTUTF16 pwszCmdLine = (PRTUTF16) HeapAlloc(GetProcessHeap(), 0 /* dwFlags*/,(cwcCmdLine + 1) * sizeof(RTUTF16));2957 PRTUTF16 pwszCmdLine = (PRTUTF16)RTMemAlloc((cwcCmdLine + 1) * sizeof(RTUTF16)); 2994 2958 SUPR3HARDENED_ASSERT(pwszCmdLine != NULL); 2995 2959 … … 3793 3757 "Error relaunching VirtualBox VM process: %u\n" 3794 3758 "Command line: '%ls'", 3795 GetLastError(), pwszCmdLine);3759 RtlGetLastWin32Error(), pwszCmdLine); 3796 3760 supR3HardenedWinDisableThreadCreation(); 3797 3761 … … 3952 3916 */ 3953 3917 supR3HardenedWinFlushLoaderCache(); 3954 HeapCompact(GetProcessHeap(), 0 /*dwFlags*/);3918 RtlCompactHeap(GetProcessHeap(), 0 /*dwFlags*/); 3955 3919 3956 3920 /* … … 4502 4466 int cArgs = 0; 4503 4467 int cArgsAllocated = 4; 4504 char **papszArgs = (char **) suplibHardenedAllocZ(sizeof(char *) * cArgsAllocated);4468 char **papszArgs = (char **)RTMemAllocZ(sizeof(char *) * cArgsAllocated); 4505 4469 char *pszSrc = pszCmdLine; 4506 4470 for (;;) … … 4517 4481 { 4518 4482 cArgsAllocated *= 2; 4519 papszArgs = (char **) suplibHardenedReAlloc(papszArgs, sizeof(char *) * cArgsAllocated);4483 papszArgs = (char **)RTMemRealloc(papszArgs, sizeof(char *) * cArgsAllocated); 4520 4484 } 4521 4485 papszArgs[cArgs++] = pszSrc; … … 5143 5107 OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL /*hTemplateFile*/); 5144 5108 if (hFile == NULL || hFile == INVALID_HANDLE_VALUE) 5145 supR3HardenedFatalMsg("suplibHardenedWindowsMain", kSupInitOp_Integrity, RTErrConvertFromWin32( GetLastError()),5146 "Error opening the executable: %u (%ls).", GetLastError());5109 supR3HardenedFatalMsg("suplibHardenedWindowsMain", kSupInitOp_Integrity, RTErrConvertFromWin32(RtlGetLastWin32Error()), 5110 "Error opening the executable: %u (%ls).", RtlGetLastWin32Error()); 5147 5111 RT_ZERO(g_SupLibHardenedExeNtPath); 5148 5112 ULONG cbIgn; -
trunk/src/VBox/HostDrivers/Support/win/SUPR3HardenedMainA-win.asm
r52523 r52940 92 92 ; @param 2 The parameter frame size on x86. Multiple of dword. 93 93 ; @param 3 Non-zero expression if system call. 94 ; @param 4 Non-zero expression if early available call 94 95 ; 95 96 %define SUPHNTIMP_SYSCALL 1 96 %macro SupHardNtImport 397 %macro SupHardNtImport 4 97 98 ; 98 99 ; The data. … … 146 147 %endif 147 148 %endif 149 150 %if %4 == 0 151 global SUPHNTIMP_STDCALL_NAME(%1, %2) %+ _Early 152 SUPHNTIMP_STDCALL_NAME(%1, %2) %+ _Early: 153 int3 154 %ifdef RT_ARCH_AMD64 155 ret 156 %else 157 ret %2 158 %endif 159 %endif 148 160 %endmacro 149 161 150 162 %define SUPHARNT_COMMENT(a_Comment) 151 %define SUPHARNT_IMPORT_SYSCALL(a_Name, a_cbParamsX86) SupHardNtImport a_Name, a_cbParamsX86, SUPHNTIMP_SYSCALL 152 %define SUPHARNT_IMPORT_STDCALL(a_Name, a_cbParamsX86) SupHardNtImport a_Name, a_cbParamsX86, 0 163 %define SUPHARNT_IMPORT_SYSCALL(a_Name, a_cbParamsX86) SupHardNtImport a_Name, a_cbParamsX86, SUPHNTIMP_SYSCALL, 1 164 %define SUPHARNT_IMPORT_STDCALL(a_Name, a_cbParamsX86) SupHardNtImport a_Name, a_cbParamsX86, 0, 0 165 %define SUPHARNT_IMPORT_STDCALL_EARLY(a_Name, a_cbParamsX86) SupHardNtImport a_Name, a_cbParamsX86, 0, 1 153 166 %include "import-template-ntdll.h" 154 167 %include "import-template-kernel32.h" -
trunk/src/VBox/HostDrivers/Support/win/SUPR3HardenedMainImports-win.cpp
r52795 r52940 69 69 /** Where to store the function address (think __imp_ApiName). */ 70 70 PFNRT *ppfnImport; 71 /** Pointer to an early dummy function for imports that aren't available 72 * during early process initialization. */ 73 PFNRT pfnEarlyDummy; 71 74 } SUPHNTIMPFUNC; 72 75 /** Pointer to an import table entry. */ … … 151 154 * Declare assembly symbols. 152 155 */ 153 #define SUPHARNT_IMPORT_STDCALL (a_Name, a_cbParamsX86) \156 #define SUPHARNT_IMPORT_STDCALL_EARLY(a_Name, a_cbParamsX86) \ 154 157 extern PFNRT RT_CONCAT(g_pfn, a_Name); 155 158 #define SUPHARNT_IMPORT_SYSCALL(a_Name, a_cbParamsX86) \ 156 SUPHARNT_IMPORT_STDCALL (a_Name, a_cbParamsX86) \159 SUPHARNT_IMPORT_STDCALL_EARLY(a_Name, a_cbParamsX86) \ 157 160 extern uint32_t RT_CONCAT(g_uApiNo, a_Name); \ 158 161 extern FNRT RT_CONCAT(a_Name, _SyscallType1); \ 159 162 extern FNRT RT_CONCAT(a_Name, _SyscallType2); 163 #define SUPHARNT_IMPORT_STDCALL(a_Name, a_cbParamsX86) \ 164 extern PFNRT RT_CONCAT(g_pfn, a_Name); \ 165 extern FNRT RT_CONCAT(a_Name, _Early); 160 166 161 167 RT_C_DECLS_BEGIN … … 168 174 */ 169 175 #undef SUPHARNT_IMPORT_SYSCALL 176 #undef SUPHARNT_IMPORT_STDCALL_EARLY 170 177 #undef SUPHARNT_IMPORT_STDCALL 171 #define SUPHARNT_IMPORT_SYSCALL(a_Name, a_cbParamsX86) { #a_Name, &RT_CONCAT(g_pfn, a_Name) }, 172 #define SUPHARNT_IMPORT_STDCALL(a_Name, a_cbParamsX86) { #a_Name, &RT_CONCAT(g_pfn, a_Name) }, 178 #define SUPHARNT_IMPORT_SYSCALL(a_Name, a_cbParamsX86) { #a_Name, &RT_CONCAT(g_pfn, a_Name), NULL }, 179 #define SUPHARNT_IMPORT_STDCALL_EARLY(a_Name, a_cbParamsX86) { #a_Name, &RT_CONCAT(g_pfn, a_Name), NULL }, 180 #define SUPHARNT_IMPORT_STDCALL(a_Name, a_cbParamsX86) { #a_Name, &RT_CONCAT(g_pfn, a_Name), RT_CONCAT(a_Name,_Early) }, 173 181 static const SUPHNTIMPFUNC g_aSupNtImpNtDllFunctions[] = 174 182 { … … 188 196 #undef SUPHARNT_IMPORT_SYSCALL 189 197 #undef SUPHARNT_IMPORT_STDCALL 198 #undef SUPHARNT_IMPORT_STDCALL_EARLY 190 199 #ifdef RT_ARCH_AMD64 191 200 # define SUPHARNT_IMPORT_STDCALL(a_Name, a_cbParamsX86) \ … … 199 208 { &RT_CONCAT(g_uApiNo, a_Name), &RT_CONCAT(a_Name,_SyscallType1), &RT_CONCAT(a_Name, _SyscallType2), a_cbParamsX86 }, 200 209 #endif 210 #define SUPHARNT_IMPORT_STDCALL_EARLY(a_Name, a_cbParamsX86) SUPHARNT_IMPORT_STDCALL(a_Name, a_cbParamsX86) 201 211 static const SUPHNTIMPSYSCALL g_aSupNtImpNtDllSyscalls[] = 202 212 { -
trunk/src/VBox/HostDrivers/Support/win/SUPR3HardenedNoCrt-win.cpp
r51770 r52940 117 117 RTDECL(void *) RTMemAllocTag(size_t cb, const char *pszTag) RT_NO_THROW 118 118 { 119 return suplibHardenedAllocZ(cb); 119 void *pv = RtlAllocateHeap(GetProcessHeap(), 0 /*fFlags*/, cb); 120 if (!pv) 121 supR3HardenedFatal("RtlAllocateHeap failed to allocate %zu bytes.\n", cb); 122 return pv; 120 123 } 121 124 … … 123 126 RTDECL(void *) RTMemAllocZTag(size_t cb, const char *pszTag) RT_NO_THROW 124 127 { 125 return suplibHardenedAllocZ(cb); 128 void *pv = RtlAllocateHeap(GetProcessHeap(), HEAP_ZERO_MEMORY, cb); 129 if (!pv) 130 supR3HardenedFatal("RtlAllocateHeap failed to allocate %zu bytes.\n", cb); 131 return pv; 126 132 } 127 133 … … 151 157 RTDECL(void *) RTMemReallocTag(void *pvOld, size_t cbNew, const char *pszTag) RT_NO_THROW 152 158 { 153 return suplibHardenedReAlloc(pvOld, cbNew); 159 if (!pvOld) 160 return RTMemAllocZTag(cbNew, pszTag); 161 162 void *pv = RtlReAllocateHeap(GetProcessHeap(), 0 /*dwFlags*/, pvOld, cbNew); 163 if (!pv) 164 supR3HardenedFatal("RtlReAllocateHeap failed to allocate %zu bytes.\n", cbNew); 165 return pv; 154 166 } 155 167 … … 157 169 RTDECL(void) RTMemFree(void *pv) RT_NO_THROW 158 170 { 159 suplibHardenedFree(pv); 171 if (pv) 172 RtlFreeHeap(GetProcessHeap(), 0 /* dwFlags*/, pv); 160 173 } 161 174 -
trunk/src/VBox/HostDrivers/Support/win/VBoxSupLib-win.cpp
r52024 r52940 52 52 SetLastError(NO_ERROR); 53 53 if ( GetModuleFileNameW((HMODULE)hModule, wszName, RT_ELEMENTS(wszName)) > 0 54 && GetLastError() == NO_ERROR)54 && RtlGetLastWin32Error() == NO_ERROR) 55 55 { 56 56 int cExtraLoads = 2; -
trunk/src/VBox/HostDrivers/Support/win/import-template-kernel32.h
r52414 r52940 1 SUPHARNT_IMPORT_STDCALL(CloseHandle, 4)2 1 SUPHARNT_IMPORT_STDCALL(CreateFileW, 28) 3 2 SUPHARNT_IMPORT_STDCALL(CreateProcessW, 40) 4 SUPHARNT_IMPORT_STDCALL(ExitProcess, 4)5 SUPHARNT_IMPORT_STDCALL(GetCurrentThreadId, 0)6 3 SUPHARNT_IMPORT_STDCALL(GetFullPathNameA, 16) 7 SUPHARNT_IMPORT_STDCALL(GetLastError, 0)8 4 SUPHARNT_IMPORT_STDCALL(GetModuleFileNameW, 12) 9 5 SUPHARNT_IMPORT_STDCALL(GetModuleHandleA, 4) … … 13 9 SUPHARNT_IMPORT_STDCALL(GetSystemDirectoryW, 8) 14 10 SUPHARNT_IMPORT_STDCALL(GetTickCount, 0) 15 SUPHARNT_IMPORT_STDCALL(HeapAlloc, 12)16 SUPHARNT_IMPORT_STDCALL(HeapCompact, 8)17 SUPHARNT_IMPORT_STDCALL(HeapFree, 8)18 SUPHARNT_IMPORT_STDCALL(HeapReAlloc, 16)19 11 SUPHARNT_IMPORT_STDCALL(LoadLibraryExW, 12) 20 12 SUPHARNT_IMPORT_STDCALL(OutputDebugStringA, 4) 21 SUPHARNT_IMPORT_STDCALL(SetLastError, 4)22 SUPHARNT_IMPORT_STDCALL(Sleep, 4)23 13 SUPHARNT_IMPORT_STDCALL(TlsAlloc, 0) 24 14 SUPHARNT_IMPORT_STDCALL(TlsGetValue, 4) 25 15 SUPHARNT_IMPORT_STDCALL(TlsSetValue, 8) 26 SUPHARNT_IMPORT_STDCALL(VirtualProtectEx, 20)27 16 SUPHARNT_IMPORT_STDCALL(WriteFile, 20) 28 17 -
trunk/src/VBox/HostDrivers/Support/win/import-template-ntdll.h
r52877 r52940 54 54 SUPHARNT_IMPORT_STDCALL(RtlAddAccessAllowedAce, 16) 55 55 SUPHARNT_IMPORT_STDCALL(RtlAddAccessDeniedAce, 16) 56 SUPHARNT_IMPORT_STDCALL(RtlAllocateHeap, 12) 57 SUPHARNT_IMPORT_STDCALL(RtlCompactHeap, 8) 56 58 SUPHARNT_IMPORT_STDCALL(RtlCopySid, 12) 57 59 SUPHARNT_IMPORT_STDCALL(RtlCreateAcl, 12) … … 63 65 SUPHARNT_IMPORT_STDCALL(RtlDosApplyFileIsolationRedirection_Ustr, 36) 64 66 SUPHARNT_IMPORT_STDCALL(RtlEqualSid, 8) 67 SUPHARNT_IMPORT_STDCALL(RtlExitProcess, 4) 68 SUPHARNT_IMPORT_STDCALL(RtlExitThread, 4) 65 69 SUPHARNT_IMPORT_STDCALL(RtlExpandEnvironmentStrings_U, 16) 70 SUPHARNT_IMPORT_STDCALL(RtlFreeHeap, 12) 66 71 SUPHARNT_IMPORT_STDCALL(RtlFreeUnicodeString, 4) 72 SUPHARNT_IMPORT_STDCALL(RtlGetLastNtStatus, 0) 73 SUPHARNT_IMPORT_STDCALL(RtlGetLastWin32Error, 0) 67 74 SUPHARNT_IMPORT_STDCALL(RtlGetVersion, 4) 68 75 SUPHARNT_IMPORT_STDCALL(RtlInitializeSid, 12) 69 76 SUPHARNT_IMPORT_STDCALL(RtlNtStatusToDosError, 4) 77 SUPHARNT_IMPORT_STDCALL(RtlReAllocateHeap, 16) 78 SUPHARNT_IMPORT_STDCALL(RtlRestoreLastWin32Error, 4) 70 79 SUPHARNT_IMPORT_STDCALL(RtlSetDaclSecurityDescriptor, 16) 80 SUPHARNT_IMPORT_STDCALL(RtlSetLastWin32Error, 4) 81 SUPHARNT_IMPORT_STDCALL(RtlSetLastWin32ErrorAndNtStatusFromNtStatus, 4) 82 SUPHARNT_IMPORT_STDCALL(RtlSizeHeap, 12) 71 83 SUPHARNT_IMPORT_STDCALL(RtlSubAuthoritySid, 8) 72 84 -
trunk/src/VBox/Runtime/r3/win/ntdll-mini-implib.def
r52877 r52940 87 87 RtlAddAccessAllowedAce ;;= _RtlAddAccessAllowedAce@16 88 88 RtlAddAccessDeniedAce ;;= _RtlAddAccessDeniedAce@16 89 RtlAllocateHeap ;;= _RtlAllocateHeap@12 90 RtlCompactHeap ;;= _RtlCompactHeap@8 89 91 RtlCopySid ;;= _RtlCopySid@12 90 92 RtlCreateAcl ;;= _RtlCreateAcl@12 … … 96 98 RtlDosApplyFileIsolationRedirection_Ustr ;;= _RtlDosApplyFileIsolationRedirection_Ustr@36 97 99 RtlEqualSid ;;= _RtlEqualSid@8 100 RtlExitProcess ;;= _RtlExitProcess@4 101 RtlExitThread ;;= _RtlExitThread@4 98 102 RtlExpandEnvironmentStrings_U ;;= _RtlExpandEnvironmentStrings_U@16 103 RtlFreeHeap ;;= _RtlFreeHeap@12 99 104 RtlFreeUnicodeString ;;= _RtlFreeUnicodeString@4 105 RtlGetLastNtStatus ;;= _RtlGetLastNtStatus@0 106 RtlGetLastWin32Error ;;= _RtlGetLastWin32Error@0 100 107 RtlGetVersion ;;= _RtlGetVersion@4 101 108 RtlInitializeSid ;;= _RtlInitializeSid@12 102 109 RtlNtStatusToDosError ;;= _RtlNtStatusToDosError@4 110 RtlReAllocateHeap ;;= _RtlReAllocateHeap@16 111 RtlRestoreLastWin32Error ;;= _RtlRestoreLastWin32Error@4 103 112 RtlSetDaclSecurityDescriptor ;;= _RtlSetDaclSecurityDescriptor@16 113 RtlSetLastWin32Error ;;= _RtlSetLastWin32Error@4 114 RtlSetLastWin32ErrorAndNtStatusFromNtStatus ;;= _RtlSetLastWin32ErrorAndNtStatusFromNtStatus@4 115 RtlSizeHeap ;;= _RtlSizeHeap@12 104 116 RtlSubAuthoritySid ;;= _RtlSubAuthoritySid@8 105 117 106
Note:
See TracChangeset
for help on using the changeset viewer.