Changeset 106417 in vbox
- Timestamp:
- Oct 17, 2024 9:45:49 AM (5 months ago)
- svn:sync-xref-src-repo-rev:
- 165236
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/include/iprt/nt/nt.h
r106061 r106417 841 841 # ifdef RT_ARCH_X86 842 842 # define KI_USER_SHARED_DATA UINT32_C(0xffdf0000) 843 # elif defined(RT_ARCH_AMD64) 843 # elif defined(RT_ARCH_AMD64) || defined(RT_ARCH_ARM64) 844 844 # define KI_USER_SHARED_DATA UINT64_C(0xfffff78000000000) 845 845 # else … … 1619 1619 DECL_FORCE_INLINE(NTSTATUS) RTNtLastStatusValue(void) { return (NTSTATUS)__readgsdword(RT_UOFFSETOF(TEB_COMMON, LastStatusValue)); } 1620 1620 DECL_FORCE_INLINE(uint32_t) RTNtLastErrorValue(void) { return __readgsdword(RT_UOFFSETOF(TEB_COMMON, LastErrorValue)); } 1621 # elif defined(RT_ARCH_ARM64) 1622 DECL_FORCE_INLINE(PTEB) RTNtCurrentTeb(void) { return (PTEB)__getReg(18); } /* The pointer to the TEB lives in x18. */ 1623 DECL_FORCE_INLINE(PPEB) RTNtCurrentPeb(void) { return RTNtCurrentTeb()->ProcessEnvironmentBlock; } 1624 DECL_FORCE_INLINE(uint32_t) RTNtCurrentThreadId(void) { return (uint32_t)(uintptr_t)RTNtCurrentTeb()->ClientId.UniqueThread; } 1625 DECL_FORCE_INLINE(NTSTATUS) RTNtLastStatusValue(void) { return RTNtCurrentTeb()->LastStatusValue; } 1626 DECL_FORCE_INLINE(uint32_t) RTNtLastErrorValue(void) { return RTNtCurrentTeb()->LastErrorValue; } 1621 1627 # else 1622 1628 # error "Port me" … … 2396 2402 typedef FILE_DESIRED_STORAGE_CLASS_INFORMATION *PFILE_DESIRED_STORAGE_CLASS_INFORMATION; 2397 2403 # endif 2404 # if !defined(IPRT_NT_USE_WINTERNL) || (WDK_NTDDI_VERSION < NTDDI_WIN11_GE) /* Available since at least SDK 10.0.26100.0 (didn't bother to check for earlier version). */ 2398 2405 typedef struct _FILE_STAT_INFORMATION 2399 2406 { … … 2411 2418 } FILE_STAT_INFORMATION; 2412 2419 typedef FILE_STAT_INFORMATION *PFILE_STAT_INFORMATION; 2420 # endif 2421 # ifndef LX_FILE_METADATA_HAS_UID 2413 2422 typedef struct _FILE_STAT_LX_INFORMATION 2414 2423 { … … 2432 2441 } FILE_STAT_LX_INFORMATION; 2433 2442 typedef FILE_STAT_LX_INFORMATION *PFILE_STAT_LX_INFORMATION; 2443 # endif 2444 # ifndef FILE_CS_FLAG_CASE_SENSITIVE_DIR 2434 2445 typedef struct _FILE_CASE_SENSITIVE_INFORMATION 2435 2446 { … … 2437 2448 } FILE_CASE_SENSITIVE_INFORMATION; 2438 2449 typedef FILE_CASE_SENSITIVE_INFORMATION *PFILE_CASE_SENSITIVE_INFORMATION; 2450 # endif 2439 2451 2440 2452 typedef enum _FILE_INFORMATION_CLASS
Note:
See TracChangeset
for help on using the changeset viewer.