10#define InvalidPointer ((PVOID)0x5555555555555555ULL)
14#define KUSER_SHARED_DATA_UMPTR 0x7FFE0000
15#define GetMajorNTVersion() (*(ULONG*)(KUSER_SHARED_DATA_UMPTR + 0x026C))
16#define GetMinorNTVersion() (*(ULONG*)(KUSER_SHARED_DATA_UMPTR + 0x0270))
17#define GetNTVersion() ((GetMajorNTVersion() << 8) | GetMinorNTVersion())
18#define GENERATE_NTDDI(Major, Minor, ServicePack, Subversion) \
19 (((Major) << 24) | ((Minor) << 16) | ((ServicePack) << 8) | (Subversion))
21#define NTDDI_MAX 0xFFFFFFFFUL
25 ULONG NTBuildNo, NTMajor, NTMinor, ServicePack, Subversion;
41 case 10240: Subversion = 0;
break;
42 case 10586: Subversion = 1;
break;
43 case 14393: Subversion = 2;
break;
44 case 15063: Subversion = 3;
break;
45 case 16299: Subversion = 4;
break;
46 case 17134: Subversion = 5;
break;
47 case 17763: Subversion = 6;
break;
48 case 18362: Subversion = 7;
break;
49 case 18363: Subversion = 8;
break;
50 case 19041: Subversion = 9;
break;
51 case 19042: Subversion = 10;
break;
52 case 19043: Subversion = 11;
break;
53 case 19044: Subversion = 12;
break;
54 case 19045: Subversion = 13;
break;
57 case 22000: Subversion = 14;
break;
58 case 22621: Subversion = 15;
break;
59 case 22631: Subversion = 16;
break;
60 case 26100: Subversion = 17;
break;
62 default: Subversion = 0;
break;
80 trace(
"Estimating an NTDDI value, GetVersionEx failed.\n");
95 NTSTATUS ExceptionStatus = STATUS_SUCCESS; \
99#define EndSeh(ExpectedStatus) \
101 _SEH2_EXCEPT(EXCEPTION_EXECUTE_HANDLER) \
103 ExceptionStatus = _SEH2_GetExceptionCode(); \
106 ok(ExceptionStatus == (ExpectedStatus), \
107 "Exception 0x%08lx, expected 0x%08lx\n", \
108 ExceptionStatus, (ExpectedStatus)); \
111#define ok_hr(status, expected) ok_hex(status, expected)
112#define ok_hr_(file, line, status, expected) ok_hex_(file, line, status, expected)
114#define ok_eq_print(value, expected, spec) ok((value) == (expected), #value " = " spec ", expected " spec "\n", value, expected)
115#define ok_eq_print_(file, line, value, expected, spec) ok_(file,line)((value) == (expected), #value " = " spec ", expected " spec "\n", value, expected)
116#define ok_eq_pointer(value, expected) ok_eq_print(value, expected, "%p")
117#define ok_eq_int(value, expected) ok_eq_print(value, expected, "%d")
118#define ok_eq_uint(value, expected) ok_eq_print(value, expected, "%u")
119#define ok_eq_long(value, expected) ok_eq_print(value, expected, "%ld")
120#define ok_eq_ulong(value, expected) ok_eq_print(value, expected, "%lu")
121#define ok_eq_longlong(value, expected) ok_eq_print(value, expected, "%I64d")
122#define ok_eq_ulonglong(value, expected) ok_eq_print(value, expected, "%I64u")
123#define ok_eq_char(value, expected) ok_eq_print(value, expected, "%c")
124#define ok_eq_wchar(value, expected) ok_eq_print(value, expected, "%C")
126#define ok_eq_size(value, expected) ok_eq_print(value, (SIZE_T)(expected), "%lu")
127#define ok_eq_longptr(value, expected) ok_eq_print(value, (LONG_PTR)(expected), "%ld")
128#define ok_eq_ulongptr(value, expected) ok_eq_print(value, (ULONG_PTR)(expected), "%lu")
130#define ok_eq_size(value, expected) ok_eq_print(value, (SIZE_T)(expected), "%I64u")
131#define ok_eq_longptr(value, expected) ok_eq_print(value, (LONG_PTR)(expected), "%I64d")
132#define ok_eq_ulongptr(value, expected) ok_eq_print(value, (ULONG_PTR)(expected), "%I64u")
134#define ok_eq_hex(value, expected) ok_eq_print((unsigned long)value, (unsigned long)expected, "0x%08lx")
135#define ok_bool_true(value, desc) ok((value) == TRUE, desc " FALSE, expected TRUE\n")
136#define ok_bool_false(value, desc) ok((value) == FALSE, desc " TRUE, expected FALSE\n")
137#define ok_eq_bool(value, expected) ok((value) == (expected), #value " = %s, expected %s\n", \
138 (value) ? "TRUE" : "FALSE", \
139 (expected) ? "TRUE" : "FALSE")
140#define ok_eq_str(value, expected) ok(!strcmp(value, expected), #value " = \"%s\", expected \"%s\"\n", value, expected)
141#define ok_eq_wstr(value, expected) ok(!wcscmp(value, expected), #value " = \"%ls\", expected \"%ls\"\n", value, expected)
142#define ok_eq_tag(value, expected) ok_eq_print(value, expected, "0x%08lx")
144#define ok_eq_hex_(file, line, value, expected) ok_eq_print_(file, line, value, expected, "0x%08lx")
145#define ok_eq_hex64_(file, line, value, expected) ok_eq_print_(file, line, value, expected, "%I64x")
146#define ok_eq_hex64(value, expected) ok_eq_print((unsigned long long)value, (unsigned long long)expected, "%I64x")
147#define ok_eq_xmm(value, expected) ok((value).Low == (expected).Low, #value " = %I64x'%08I64x, expected %I64x'%08I64x\n", (value).Low, (value).High, (expected).Low, (expected).High)
#define GetMajorNTVersion()
#define GENERATE_NTDDI(Major, Minor, ServicePack, Subversion)
#define GetMinorNTVersion()
#define KUSER_SHARED_DATA_UMPTR
static ULONG GetNTDDIVersion(VOID)
BOOL WINAPI GetVersionExW(IN LPOSVERSIONINFOW lpVersionInformation)
#define _WIN32_WINNT_WINBLUE
ULONG dwOSVersionInfoSize