- Timestamp:
- Oct 3, 2014 7:58:01 PM (10 years ago)
- Location:
- trunk
- Files:
-
- 10 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/include/iprt/nt/nt.h
r52940 r52941 1926 1926 NTSYSAPI VOID NTAPI LdrInitializeThunk(PVOID, PVOID, PVOID); 1927 1927 NTSYSAPI NTSTATUS NTAPI RtlExpandEnvironmentStrings_U(PVOID, PUNICODE_STRING, PUNICODE_STRING, PULONG); 1928 NTSYSAPI VOID NTAPI RtlExit Process(NTSTATUS rcExitCode);1929 NTSYSAPI VOID NTAPI RtlExit Thread(NTSTATUS rcExitCode);1928 NTSYSAPI VOID NTAPI RtlExitUserProcess(NTSTATUS rcExitCode); /**< Vista and later. */ 1929 NTSYSAPI VOID NTAPI RtlExitUserThread(NTSTATUS rcExitCode); 1930 1930 NTSYSAPI NTSTATUS NTAPI RtlDosApplyFileIsolationRedirection_Ustr(IN ULONG fFlags, 1931 1931 IN PCUNICODE_STRING pOrgName, … … 1937 1937 IN PSIZE_T pcbFilename OPTIONAL, 1938 1938 IN PSIZE_T pcbNeeded OPTIONAL); 1939 1939 1940 # ifdef IPRT_NT_USE_WINTERNL 1941 typedef NTSTATUS NTAPI RTL_HEAP_COMMIT_ROUTINE(PVOID, PVOID *, PSIZE_T); 1942 typedef RTL_HEAP_COMMIT_ROUTINE *PRTL_HEAP_COMMIT_ROUTINE; 1943 typedef struct _RTL_HEAP_PARAMETERS 1944 { 1945 ULONG Length; 1946 SIZE_T SegmentReserve; 1947 SIZE_T SegmentCommit; 1948 SIZE_T DeCommitFreeBlockThreshold; 1949 SIZE_T DeCommitTotalFreeThreshold; 1950 SIZE_T MaximumAllocationSize; 1951 SIZE_T VirtualMemoryThreshold; 1952 SIZE_T InitialCommit; 1953 SIZE_T InitialReserve; 1954 PRTL_HEAP_COMMIT_ROUTINE CommitRoutine; 1955 SIZE_T Reserved[2]; 1956 } RTL_HEAP_PARAMETERS; 1957 typedef RTL_HEAP_PARAMETERS *PRTL_HEAP_PARAMETERS; 1958 NTSYSAPI PVOID NTAPI RtlCreateHeap(ULONG fFlags, PVOID pvHeapBase, SIZE_T cbReserve, SIZE_T cbCommit, PVOID pvLock, 1959 PRTL_HEAP_PARAMETERS pParameters); 1960 /** @name Heap flags (for RtlCreateHeap). 1961 * @{ */ 1962 /*# define HEAP_NO_SERIALIZE UINT32_C(0x00000001) 1963 # define HEAP_GROWABLE UINT32_C(0x00000002) 1964 # define HEAP_GENERATE_EXCEPTIONS UINT32_C(0x00000004) 1965 # define HEAP_ZERO_MEMORY UINT32_C(0x00000008) 1966 # define HEAP_REALLOC_IN_PLACE_ONLY UINT32_C(0x00000010) 1967 # define HEAP_TAIL_CHECKING_ENABLED UINT32_C(0x00000020) 1968 # define HEAP_FREE_CHECKING_ENABLED UINT32_C(0x00000040) 1969 # define HEAP_DISABLE_COALESCE_ON_FREE UINT32_C(0x00000080)*/ 1970 # define HEAP_SETTABLE_USER_VALUE UINT32_C(0x00000100) 1971 # define HEAP_SETTABLE_USER_FLAG1 UINT32_C(0x00000200) 1972 # define HEAP_SETTABLE_USER_FLAG2 UINT32_C(0x00000400) 1973 # define HEAP_SETTABLE_USER_FLAG3 UINT32_C(0x00000800) 1974 # define HEAP_SETTABLE_USER_FLAGS UINT32_C(0x00000e00) 1975 # define HEAP_CLASS_0 UINT32_C(0x00000000) 1976 # define HEAP_CLASS_1 UINT32_C(0x00001000) 1977 # define HEAP_CLASS_2 UINT32_C(0x00002000) 1978 # define HEAP_CLASS_3 UINT32_C(0x00003000) 1979 # define HEAP_CLASS_4 UINT32_C(0x00004000) 1980 # define HEAP_CLASS_5 UINT32_C(0x00005000) 1981 # define HEAP_CLASS_6 UINT32_C(0x00006000) 1982 # define HEAP_CLASS_7 UINT32_C(0x00007000) 1983 # define HEAP_CLASS_8 UINT32_C(0x00008000) 1984 # define HEAP_CLASS_MASK UINT32_C(0x0000f000) 1985 # endif 1986 # define HEAP_CLASS_PROCESS HEAP_CLASS_0 1987 # define HEAP_CLASS_PRIVATE HEAP_CLASS_1 1988 # define HEAP_CLASS_KERNEL HEAP_CLASS_2 1989 # define HEAP_CLASS_GDI HEAP_CLASS_3 1990 # define HEAP_CLASS_USER HEAP_CLASS_4 1991 # define HEAP_CLASS_CONSOLE HEAP_CLASS_5 1992 # define HEAP_CLASS_USER_DESKTOP HEAP_CLASS_6 1993 # define HEAP_CLASS_CSRSS_SHARED HEAP_CLASS_7 1994 # define HEAP_CLASS_CSRSS_PORT HEAP_CLASS_8 1995 # ifdef IPRT_NT_USE_WINTERNL 1996 /*# define HEAP_CREATE_ALIGN_16 UINT32_C(0x00010000) 1997 # define HEAP_CREATE_ENABLE_TRACING UINT32_C(0x00020000) 1998 # define HEAP_CREATE_ENABLE_EXECUTE UINT32_C(0x00040000)*/ 1999 # define HEAP_CREATE_VALID_MASK UINT32_C(0x0007f0ff) 2000 # endif /* IPRT_NT_USE_WINTERNL */ 2001 /** @} */ 2002 # ifdef IPRT_NT_USE_WINTERNL 2003 /** @name Heap tagging constants 2004 * @{ */ 2005 # define HEAP_GLOBAL_TAG UINT32_C(0x00000800) 2006 /*# define HEAP_MAXIMUM_TAG UINT32_C(0x00000fff) 2007 # define HEAP_PSEUDO_TAG_FLAG UINT32_C(0x00008000) 2008 # define HEAP_TAG_SHIFT 18 */ 2009 # define HEAP_TAG_MASK (HEAP_MAXIMUM_TAG << HEAP_TAG_SHIFT) 2010 /** @} */ 1940 2011 NTSYSAPI PVOID NTAPI RtlAllocateHeap(HANDLE hHeap, ULONG fFlags, SIZE_T cb); 1941 2012 NTSYSAPI PVOID NTAPI RtlReAllocateHeap(HANDLE hHeap, ULONG fFlags, PVOID pvOld, SIZE_T cbNew); -
trunk/src/VBox/HostDrivers/Support/SUPLibInternal.h
r52795 r52941 313 313 { 314 314 SUPR3HARDENEDMAINSTATE_NOT_YET_CALLED = 0, 315 SUPR3HARDENEDMAINSTATE_WIN_EP_CALLED, 316 SUPR3HARDENEDMAINSTATE_WIN_IMPORTS_RESOLVED, 317 SUPR3HARDENEDMAINSTATE_WIN_VERSION_INITIALIZED, 315 318 SUPR3HARDENEDMAINSTATE_VERIFY_TRUST_READY, 316 319 SUPR3HARDENEDMAINSTATE_INIT_RUNTIME, … … 452 455 extern char g_szSupLibHardenedExePath[RTPATH_MAX]; 453 456 # endif 457 DECLHIDDEN(void) supR3HardenedWinCompactHeaps(void); 454 458 #endif 455 459 -
trunk/src/VBox/HostDrivers/Support/SUPR3HardenedMain.cpp
r52940 r52941 227 227 { 228 228 for (;;) 229 { 229 230 #ifdef RT_OS_WINDOWS 230 RtlExitProcess(rcExit); 231 if (g_enmSupR3HardenedMainState >= SUPR3HARDENEDMAINSTATE_WIN_IMPORTS_RESOLVED) 232 ExitProcess(rcExit); 233 if (RtlExitUserProcess != NULL) 234 RtlExitUserProcess(rcExit); 235 NtTerminateProcess(NtCurrentProcess(), rcExit); 231 236 #else 232 237 _Exit(rcExit); 233 238 #endif 239 } 234 240 } 235 241 -
trunk/src/VBox/HostDrivers/Support/win/SUPR3HardenedMain-win.cpp
r52940 r52941 3916 3916 */ 3917 3917 supR3HardenedWinFlushLoaderCache(); 3918 RtlCompactHeap(GetProcessHeap(), 0 /*dwFlags*/);3918 supR3HardenedWinCompactHeaps(); 3919 3919 3920 3920 /* … … 5051 5051 5052 5052 g_cSuplibHardenedWindowsMainCalls++; 5053 g_enmSupR3HardenedMainState = SUPR3HARDENEDMAINSTATE_WIN_EP_CALLED; 5053 5054 5054 5055 /* … … 5057 5058 */ 5058 5059 supR3HardenedWinInitImports(); 5060 g_enmSupR3HardenedMainState = SUPR3HARDENEDMAINSTATE_WIN_IMPORTS_RESOLVED; 5059 5061 5060 5062 /* … … 5070 5072 */ 5071 5073 supR3HardenedWinInitVersion(); 5074 g_enmSupR3HardenedMainState = SUPR3HARDENEDMAINSTATE_WIN_VERSION_INITIALIZED; 5072 5075 5073 5076 /* -
trunk/src/VBox/HostDrivers/Support/win/SUPR3HardenedMainA-win.asm
r52940 r52941 162 162 %define SUPHARNT_COMMENT(a_Comment) 163 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 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 166 %define SUPHARNT_IMPORT_STDCALL_EARLY_OPTIONAL(a_Name, a_cbParamsX86) SUPHARNT_IMPORT_STDCALL_EARLY(a_Name, a_cbParamsX86) 166 167 %include "import-template-ntdll.h" 167 168 %include "import-template-kernel32.h" -
trunk/src/VBox/HostDrivers/Support/win/SUPR3HardenedMainImports-win.cpp
r52940 r52941 72 72 * during early process initialization. */ 73 73 PFNRT pfnEarlyDummy; 74 /** Indicates whether this is an optional import and failure to locate it 75 * should set it to NULL instead of freaking out. */ 76 bool fOptional; 74 77 } SUPHNTIMPFUNC; 75 78 /** Pointer to an import table entry. */ … … 156 159 #define SUPHARNT_IMPORT_STDCALL_EARLY(a_Name, a_cbParamsX86) \ 157 160 extern PFNRT RT_CONCAT(g_pfn, a_Name); 161 #define SUPHARNT_IMPORT_STDCALL_EARLY_OPTIONAL(a_Name, a_cbParamsX86) SUPHARNT_IMPORT_STDCALL_EARLY(a_Name, a_cbParamsX86) 158 162 #define SUPHARNT_IMPORT_SYSCALL(a_Name, a_cbParamsX86) \ 159 163 SUPHARNT_IMPORT_STDCALL_EARLY(a_Name, a_cbParamsX86) \ … … 175 179 #undef SUPHARNT_IMPORT_SYSCALL 176 180 #undef SUPHARNT_IMPORT_STDCALL_EARLY 181 #undef SUPHARNT_IMPORT_STDCALL_EARLY_OPTIONAL 177 182 #undef SUPHARNT_IMPORT_STDCALL 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) }, 183 #define SUPHARNT_IMPORT_SYSCALL(a_Name, a_cbParamsX86) \ 184 { #a_Name, &RT_CONCAT(g_pfn, a_Name), NULL, false }, 185 #define SUPHARNT_IMPORT_STDCALL_EARLY(a_Name, a_cbParamsX86) \ 186 { #a_Name, &RT_CONCAT(g_pfn, a_Name), NULL, false }, 187 #define SUPHARNT_IMPORT_STDCALL_EARLY_OPTIONAL(a_Name, a_cbParamsX86) \ 188 { #a_Name, &RT_CONCAT(g_pfn, a_Name), NULL, true }, 189 #define SUPHARNT_IMPORT_STDCALL(a_Name, a_cbParamsX86) \ 190 { #a_Name, &RT_CONCAT(g_pfn, a_Name), RT_CONCAT(a_Name,_Early), false }, 181 191 static const SUPHNTIMPFUNC g_aSupNtImpNtDllFunctions[] = 182 192 { … … 197 207 #undef SUPHARNT_IMPORT_STDCALL 198 208 #undef SUPHARNT_IMPORT_STDCALL_EARLY 209 #undef SUPHARNT_IMPORT_STDCALL_EARLY_OPTIONAL 199 210 #ifdef RT_ARCH_AMD64 200 211 # define SUPHARNT_IMPORT_STDCALL(a_Name, a_cbParamsX86) \ … … 208 219 { &RT_CONCAT(g_uApiNo, a_Name), &RT_CONCAT(a_Name,_SyscallType1), &RT_CONCAT(a_Name, _SyscallType2), a_cbParamsX86 }, 209 220 #endif 210 #define SUPHARNT_IMPORT_STDCALL_EARLY(a_Name, a_cbParamsX86) SUPHARNT_IMPORT_STDCALL(a_Name, a_cbParamsX86) 221 #define SUPHARNT_IMPORT_STDCALL_EARLY(a_Name, a_cbParamsX86) SUPHARNT_IMPORT_STDCALL(a_Name, a_cbParamsX86) 222 #define SUPHARNT_IMPORT_STDCALL_EARLY_OPTIONAL(a_Name, a_cbParamsX86) SUPHARNT_IMPORT_STDCALL(a_Name, a_cbParamsX86) 211 223 static const SUPHNTIMPSYSCALL g_aSupNtImpNtDllSyscalls[] = 212 224 { … … 399 411 } 400 412 401 SUPHNTIMP_ERROR(15, "supR3HardenedResolveImport", kSupInitOp_Misc, VERR_SYMBOL_NOT_FOUND, 402 "%ls: Failed to resolve '%s'.", pDll->pwszName, pImport->pszName); 413 if (!pImport->fOptional) 414 SUPHNTIMP_ERROR(15, "supR3HardenedResolveImport", kSupInitOp_Misc, VERR_SYMBOL_NOT_FOUND, 415 "%ls: Failed to resolve '%s'.", pDll->pwszName, pImport->pszName); 416 *pImport->ppfnImport = NULL; 403 417 return NULL; 404 418 } -
trunk/src/VBox/HostDrivers/Support/win/SUPR3HardenedNoCrt-win.cpp
r52940 r52941 97 97 */ 98 98 99 /** The heap we're using. */ 100 static HANDLE g_hSupR3HardenedHeap = NULL; 101 102 103 /** 104 * Lazy heap initialization function. 105 * 106 * @returns Heap handle. 107 */ 108 static HANDLE supR3HardenedHeapInit(void) 109 { 110 HANDLE hHeap = RtlCreateHeap(HEAP_GROWABLE | HEAP_CLASS_PRIVATE, NULL /*HeapBase*/, 111 0 /*ReserveSize*/, 0 /*CommitSize*/, NULL /*Lock*/, NULL /*Parameters*/); 112 if (hHeap) 113 { 114 g_hSupR3HardenedHeap = hHeap; 115 return hHeap; 116 } 117 118 supR3HardenedFatal("RtlCreateHeap failed.\n"); 119 return NULL; 120 } 121 122 123 /** 124 * Compacts the heaps before enter wait for parent/child. 125 */ 126 DECLHIDDEN(void) supR3HardenedWinCompactHeaps(void) 127 { 128 if (g_hSupR3HardenedHeap) 129 RtlCompactHeap(g_hSupR3HardenedHeap, 0 /*dwFlags*/); 130 RtlCompactHeap(GetProcessHeap(), 0 /*dwFlags*/); 131 } 132 133 134 99 135 RTDECL(void *) RTMemTmpAllocTag(size_t cb, const char *pszTag) RT_NO_THROW 100 136 { … … 117 153 RTDECL(void *) RTMemAllocTag(size_t cb, const char *pszTag) RT_NO_THROW 118 154 { 119 void *pv = RtlAllocateHeap(GetProcessHeap(), 0 /*fFlags*/, cb); 155 HANDLE hHeap = g_hSupR3HardenedHeap; 156 if (!hHeap) 157 hHeap = supR3HardenedHeapInit(); 158 void *pv = RtlAllocateHeap(hHeap, 0 /*fFlags*/, cb); 120 159 if (!pv) 121 160 supR3HardenedFatal("RtlAllocateHeap failed to allocate %zu bytes.\n", cb); … … 126 165 RTDECL(void *) RTMemAllocZTag(size_t cb, const char *pszTag) RT_NO_THROW 127 166 { 128 void *pv = RtlAllocateHeap(GetProcessHeap(), HEAP_ZERO_MEMORY, cb); 167 HANDLE hHeap = g_hSupR3HardenedHeap; 168 if (!hHeap) 169 hHeap = supR3HardenedHeapInit(); 170 void *pv = RtlAllocateHeap(hHeap, HEAP_ZERO_MEMORY, cb); 129 171 if (!pv) 130 172 supR3HardenedFatal("RtlAllocateHeap failed to allocate %zu bytes.\n", cb); … … 160 202 return RTMemAllocZTag(cbNew, pszTag); 161 203 162 void *pv = RtlReAllocateHeap(GetProcessHeap(), 0 /*dwFlags*/, pvOld, cbNew); 204 HANDLE hHeap = g_hSupR3HardenedHeap; 205 Assert(hHeap != NULL); 206 void *pv = RtlReAllocateHeap(hHeap, 0 /*dwFlags*/, pvOld, cbNew); 163 207 if (!pv) 164 208 supR3HardenedFatal("RtlReAllocateHeap failed to allocate %zu bytes.\n", cbNew); … … 170 214 { 171 215 if (pv) 172 RtlFreeHeap(GetProcessHeap(), 0 /* dwFlags*/, pv); 216 { 217 HANDLE hHeap = g_hSupR3HardenedHeap; 218 Assert(hHeap != NULL); 219 RtlFreeHeap(hHeap, 0 /* dwFlags*/, pv); 220 } 173 221 } 174 222 -
trunk/src/VBox/HostDrivers/Support/win/import-template-kernel32.h
r52940 r52941 1 1 SUPHARNT_IMPORT_STDCALL(CreateFileW, 28) 2 2 SUPHARNT_IMPORT_STDCALL(CreateProcessW, 40) 3 SUPHARNT_IMPORT_STDCALL(ExitProcess, 4) 3 4 SUPHARNT_IMPORT_STDCALL(GetFullPathNameA, 16) 4 5 SUPHARNT_IMPORT_STDCALL(GetModuleFileNameW, 12) -
trunk/src/VBox/HostDrivers/Support/win/import-template-ntdll.h
r52940 r52941 49 49 50 50 51 SUPHARNT_IMPORT_STDCALL (NtCreateSection, 28)52 SUPHARNT_IMPORT_STDCALL (NtQueryVolumeInformationFile, 20)53 SUPHARNT_IMPORT_STDCALL (LdrInitializeThunk, 12)51 SUPHARNT_IMPORT_STDCALL_EARLY(NtCreateSection, 28) 52 SUPHARNT_IMPORT_STDCALL_EARLY(NtQueryVolumeInformationFile, 20) 53 SUPHARNT_IMPORT_STDCALL_EARLY(LdrInitializeThunk, 12) 54 54 SUPHARNT_IMPORT_STDCALL(RtlAddAccessAllowedAce, 16) 55 55 SUPHARNT_IMPORT_STDCALL(RtlAddAccessDeniedAce, 16) 56 SUPHARNT_IMPORT_STDCALL (RtlAllocateHeap, 12)56 SUPHARNT_IMPORT_STDCALL_EARLY(RtlAllocateHeap, 12) 57 57 SUPHARNT_IMPORT_STDCALL(RtlCompactHeap, 8) 58 58 SUPHARNT_IMPORT_STDCALL(RtlCopySid, 12) 59 59 SUPHARNT_IMPORT_STDCALL(RtlCreateAcl, 12) 60 SUPHARNT_IMPORT_STDCALL_EARLY(RtlCreateHeap, 24) 60 61 SUPHARNT_IMPORT_STDCALL(RtlCreateProcessParameters, 40) 61 62 SUPHARNT_IMPORT_STDCALL(RtlCreateSecurityDescriptor, 8) … … 63 64 SUPHARNT_IMPORT_STDCALL(RtlCreateUserThread, 40) 64 65 SUPHARNT_IMPORT_STDCALL(RtlDestroyProcessParameters, 4) 65 SUPHARNT_IMPORT_STDCALL (RtlDosApplyFileIsolationRedirection_Ustr, 36)66 SUPHARNT_IMPORT_STDCALL (RtlEqualSid, 8)67 SUPHARNT_IMPORT_STDCALL (RtlExitProcess, 4)68 SUPHARNT_IMPORT_STDCALL (RtlExitThread, 4)66 SUPHARNT_IMPORT_STDCALL_EARLY(RtlDosApplyFileIsolationRedirection_Ustr, 36) 67 SUPHARNT_IMPORT_STDCALL_EARLY(RtlEqualSid, 8) 68 SUPHARNT_IMPORT_STDCALL_EARLY_OPTIONAL(RtlExitUserProcess, 4) 69 SUPHARNT_IMPORT_STDCALL_EARLY(RtlExitUserThread, 4) 69 70 SUPHARNT_IMPORT_STDCALL(RtlExpandEnvironmentStrings_U, 16) 70 SUPHARNT_IMPORT_STDCALL (RtlFreeHeap, 12)71 SUPHARNT_IMPORT_STDCALL (RtlFreeUnicodeString, 4)72 SUPHARNT_IMPORT_STDCALL (RtlGetLastNtStatus, 0)73 SUPHARNT_IMPORT_STDCALL (RtlGetLastWin32Error, 0)74 SUPHARNT_IMPORT_STDCALL (RtlGetVersion, 4)71 SUPHARNT_IMPORT_STDCALL_EARLY(RtlFreeHeap, 12) 72 SUPHARNT_IMPORT_STDCALL_EARLY(RtlFreeUnicodeString, 4) 73 SUPHARNT_IMPORT_STDCALL_EARLY(RtlGetLastNtStatus, 0) 74 SUPHARNT_IMPORT_STDCALL_EARLY(RtlGetLastWin32Error, 0) 75 SUPHARNT_IMPORT_STDCALL_EARLY(RtlGetVersion, 4) 75 76 SUPHARNT_IMPORT_STDCALL(RtlInitializeSid, 12) 76 SUPHARNT_IMPORT_STDCALL (RtlNtStatusToDosError, 4)77 SUPHARNT_IMPORT_STDCALL (RtlReAllocateHeap, 16)78 SUPHARNT_IMPORT_STDCALL (RtlRestoreLastWin32Error, 4)77 SUPHARNT_IMPORT_STDCALL_EARLY(RtlNtStatusToDosError, 4) 78 SUPHARNT_IMPORT_STDCALL_EARLY(RtlReAllocateHeap, 16) 79 SUPHARNT_IMPORT_STDCALL_EARLY(RtlRestoreLastWin32Error, 4) 79 80 SUPHARNT_IMPORT_STDCALL(RtlSetDaclSecurityDescriptor, 16) 80 SUPHARNT_IMPORT_STDCALL (RtlSetLastWin32Error, 4)81 SUPHARNT_IMPORT_STDCALL (RtlSetLastWin32ErrorAndNtStatusFromNtStatus, 4)82 SUPHARNT_IMPORT_STDCALL (RtlSizeHeap, 12)81 SUPHARNT_IMPORT_STDCALL_EARLY(RtlSetLastWin32Error, 4) 82 SUPHARNT_IMPORT_STDCALL_EARLY(RtlSetLastWin32ErrorAndNtStatusFromNtStatus, 4) 83 SUPHARNT_IMPORT_STDCALL_EARLY(RtlSizeHeap, 12) 83 84 SUPHARNT_IMPORT_STDCALL(RtlSubAuthoritySid, 8) 84 85 -
trunk/src/VBox/Runtime/r3/win/ntdll-mini-implib.def
r52940 r52941 91 91 RtlCopySid ;;= _RtlCopySid@12 92 92 RtlCreateAcl ;;= _RtlCreateAcl@12 93 RtlCreateHeap ;;= _RtlCreateHeap@24 93 94 RtlCreateProcessParameters ;;= _RtlCreateProcessParameters@40 94 95 RtlCreateSecurityDescriptor ;;= _RtlCreateSecurityDescriptor@8 … … 98 99 RtlDosApplyFileIsolationRedirection_Ustr ;;= _RtlDosApplyFileIsolationRedirection_Ustr@36 99 100 RtlEqualSid ;;= _RtlEqualSid@8 100 RtlExit Process;;= _RtlExitProcess@4101 RtlExit Thread;;= _RtlExitThread@4101 RtlExitUserProcess ;;= _RtlExitProcess@4 102 RtlExitUserThread ;;= _RtlExitThread@4 102 103 RtlExpandEnvironmentStrings_U ;;= _RtlExpandEnvironmentStrings_U@16 103 104 RtlFreeHeap ;;= _RtlFreeHeap@12
Note:
See TracChangeset
for help on using the changeset viewer.