2 * PROJECT: ReactOS api tests
3 * LICENSE: GPL - See COPYING in the top level directory
4 * PURPOSE: Test for NtQuery/SetSystemInformation
5 * PROGRAMMERS: Timo Kreuzer
6 * Thomas Faber <thomas.faber@reactos.org>
11 #define WIN32_NO_STATUS
12 #include <ndk/exfuncs.h>
13 #include <ndk/rtlfuncs.h>
14 #include <ndk/setypes.h>
16 #define ntv6(x) (LOBYTE(LOWORD(GetVersion())) >= 6 ? (x) : 0)
27 PSYSTEM_FLAGS_INFORMATION FlagsInfo
= (PVOID
)Buffer
;
28 BOOLEAN PrivilegeEnabled
;
31 ReturnLength
= 0x55555555;
32 Status
= NtQuerySystemInformation(SystemFlagsInformation
, NULL
, 0, &ReturnLength
);
33 ok(Status
== STATUS_INFO_LENGTH_MISMATCH
, "NtQuerySystemInformation returned %lx\n", Status
);
34 ok(ReturnLength
== 0 ||
35 ntv6(ReturnLength
== sizeof(SYSTEM_FLAGS_INFORMATION
)), "ReturnLength = %lu\n", ReturnLength
);
37 ReturnLength
= 0x55555555;
38 Status
= NtQuerySystemInformation(SystemFlagsInformation
, NULL
, sizeof(SYSTEM_FLAGS_INFORMATION
) - 1, &ReturnLength
);
39 ok(Status
== STATUS_ACCESS_VIOLATION
, "NtQuerySystemInformation returned %lx\n", Status
);
40 ok(ReturnLength
== 0x55555555, "ReturnLength = %lu\n", ReturnLength
);
42 ReturnLength
= 0x55555555;
43 Status
= NtQuerySystemInformation(SystemFlagsInformation
, (PVOID
)2, 0, &ReturnLength
);
44 ok(Status
== STATUS_INFO_LENGTH_MISMATCH
, "NtQuerySystemInformation returned %lx\n", Status
);
45 ok(ReturnLength
== 0 ||
46 ntv6(ReturnLength
== sizeof(SYSTEM_FLAGS_INFORMATION
)), "ReturnLength = %lu\n", ReturnLength
);
48 ReturnLength
= 0x55555555;
49 Status
= NtQuerySystemInformation(SystemFlagsInformation
, (PVOID
)4, 0, &ReturnLength
);
50 ok(Status
== STATUS_INFO_LENGTH_MISMATCH
, "NtQuerySystemInformation returned %lx\n", Status
);
51 ok(ReturnLength
== 0 ||
52 ntv6(ReturnLength
== sizeof(SYSTEM_FLAGS_INFORMATION
)), "ReturnLength = %lu\n", ReturnLength
);
54 ReturnLength
= 0x55555555;
55 RtlFillMemory(Buffer
, sizeof(Buffer
), 0x55);
56 Status
= NtQuerySystemInformation(SystemFlagsInformation
, (PUCHAR
)FlagsInfo
+ 2, sizeof(SYSTEM_FLAGS_INFORMATION
), &ReturnLength
);
57 ok(Status
== STATUS_DATATYPE_MISALIGNMENT
, "NtQuerySystemInformation returned %lx\n", Status
);
58 ok(ReturnLength
== 0x55555555, "ReturnLength = %lu\n", ReturnLength
);
59 ok(Buffer
[0] == 0x55555555, "Buffer[0] = %lx\n", Buffer
[0]);
60 ok(Buffer
[1] == 0x55555555, "Buffer[1] = %lx\n", Buffer
[1]);
62 ReturnLength
= 0x55555555;
63 RtlFillMemory(Buffer
, sizeof(Buffer
), 0x55);
64 Status
= NtQuerySystemInformation(SystemFlagsInformation
, (PUCHAR
)FlagsInfo
+ 2, sizeof(SYSTEM_FLAGS_INFORMATION
) - 1, &ReturnLength
);
65 ok(Status
== STATUS_DATATYPE_MISALIGNMENT
, "NtQuerySystemInformation returned %lx\n", Status
);
66 ok(ReturnLength
== 0x55555555, "ReturnLength = %lu\n", ReturnLength
);
67 ok(Buffer
[0] == 0x55555555, "Buffer[0] = %lx\n", Buffer
[0]);
68 ok(Buffer
[1] == 0x55555555, "Buffer[1] = %lx\n", Buffer
[1]);
70 ReturnLength
= 0x55555555;
71 RtlFillMemory(Buffer
, sizeof(Buffer
), 0x55);
72 Status
= NtQuerySystemInformation(SystemFlagsInformation
, FlagsInfo
, sizeof(SYSTEM_FLAGS_INFORMATION
) - 1, &ReturnLength
);
73 ok(Status
== STATUS_INFO_LENGTH_MISMATCH
, "NtQuerySystemInformation returned %lx\n", Status
);
74 ok(ReturnLength
== 0 ||
75 ntv6(ReturnLength
== sizeof(SYSTEM_FLAGS_INFORMATION
)), "ReturnLength = %lu\n", ReturnLength
);
76 ok(Buffer
[0] == 0x55555555, "Buffer[0] = %lx\n", Buffer
[0]);
77 ok(Buffer
[1] == 0x55555555, "Buffer[1] = %lx\n", Buffer
[1]);
79 ReturnLength
= 0x55555555;
80 RtlFillMemory(Buffer
, sizeof(Buffer
), 0x55);
81 Status
= NtQuerySystemInformation(SystemFlagsInformation
, FlagsInfo
, sizeof(SYSTEM_FLAGS_INFORMATION
), &ReturnLength
);
82 ok(Status
== STATUS_SUCCESS
, "NtQuerySystemInformation returned %lx\n", Status
);
83 ok(ReturnLength
== sizeof(SYSTEM_FLAGS_INFORMATION
), "ReturnLength = %lu\n", ReturnLength
);
84 ok(FlagsInfo
->Flags
!= 0x55555555, "Flags = %lx\n", FlagsInfo
->Flags
);
85 ok(Buffer
[1] == 0x55555555, "Buffer[1] = %lx\n", Buffer
[1]);
86 Flags
= FlagsInfo
->Flags
;
88 ReturnLength
= 0x55555555;
89 RtlFillMemory(Buffer
, sizeof(Buffer
), 0x55);
90 Status
= NtQuerySystemInformation(SystemFlagsInformation
, FlagsInfo
, sizeof(SYSTEM_FLAGS_INFORMATION
) + 1, &ReturnLength
);
91 ok(Status
== STATUS_INFO_LENGTH_MISMATCH
, "NtQuerySystemInformation returned %lx\n", Status
);
92 ok(ReturnLength
== 0 ||
93 ntv6(ReturnLength
== sizeof(SYSTEM_FLAGS_INFORMATION
)), "ReturnLength = %lu\n", ReturnLength
);
94 ok(Buffer
[0] == 0x55555555, "Buffer[0] = %lx\n", Buffer
[0]);
95 ok(Buffer
[1] == 0x55555555, "Buffer[1] = %lx\n", Buffer
[1]);
97 RtlFillMemory(Buffer
, sizeof(Buffer
), 0x55);
98 Status
= NtQuerySystemInformation(SystemFlagsInformation
, FlagsInfo
, sizeof(SYSTEM_FLAGS_INFORMATION
), NULL
);
99 ok(Status
== STATUS_SUCCESS
, "NtQuerySystemInformation returned %lx\n", Status
);
100 ok(FlagsInfo
->Flags
== Flags
, "Flags = %lx, expected %lx\n", FlagsInfo
->Flags
, Flags
);
101 ok(Buffer
[1] == 0x55555555, "Buffer[1] = %lx\n", Buffer
[1]);
103 RtlFillMemory(Buffer
, sizeof(Buffer
), 0x55);
104 Status
= NtQuerySystemInformation(SystemFlagsInformation
, FlagsInfo
, sizeof(SYSTEM_FLAGS_INFORMATION
), (PVOID
)4);
105 ok(Status
== STATUS_ACCESS_VIOLATION
, "NtQuerySystemInformation returned %lx\n", Status
);
106 ok(Buffer
[0] == 0x55555555, "Buffer[0] = %lx\n", Buffer
[0]);
107 ok(Buffer
[1] == 0x55555555, "Buffer[1] = %lx\n", Buffer
[1]);
109 RtlFillMemory(Buffer
, sizeof(Buffer
), 0x55);
110 Status
= NtQuerySystemInformation(SystemFlagsInformation
, FlagsInfo
, sizeof(SYSTEM_FLAGS_INFORMATION
), (PVOID
)2);
111 ok(Status
== STATUS_ACCESS_VIOLATION
, "NtQuerySystemInformation returned %lx\n", Status
);
112 ok(Buffer
[0] == 0x55555555, "Buffer[0] = %lx\n", Buffer
[0]);
113 ok(Buffer
[1] == 0x55555555, "Buffer[1] = %lx\n", Buffer
[1]);
115 RtlFillMemory(Buffer
, sizeof(Buffer
), 0x55);
116 Status
= NtQuerySystemInformation(SystemFlagsInformation
, FlagsInfo
, sizeof(SYSTEM_FLAGS_INFORMATION
), (PVOID
)1);
117 ok(Status
== STATUS_ACCESS_VIOLATION
, "NtQuerySystemInformation returned %lx\n", Status
);
118 ok(Buffer
[0] == 0x55555555, "Buffer[0] = %lx\n", Buffer
[0]);
119 ok(Buffer
[1] == 0x55555555, "Buffer[1] = %lx\n", Buffer
[1]);
121 RtlFillMemory(Buffer2
, sizeof(Buffer2
), 0x55);
122 RtlFillMemory(Buffer
, sizeof(Buffer
), 0x55);
123 Status
= NtQuerySystemInformation(SystemFlagsInformation
, FlagsInfo
, sizeof(SYSTEM_FLAGS_INFORMATION
), (PULONG
)((PUCHAR
)Buffer2
+ 1));
124 ok(Status
== STATUS_SUCCESS
, "NtQuerySystemInformation returned %lx\n", Status
);
125 ok(FlagsInfo
->Flags
== Flags
, "Flags = %lx, expected %lx\n", FlagsInfo
->Flags
, Flags
);
126 ok(Buffer
[1] == 0x55555555, "Buffer[1] = %lx\n", Buffer
[1]);
127 ok(Buffer2
[0] == 0x00000455, "Buffer2[0] = %lx\n", Buffer2
[0]);
128 ok(Buffer2
[1] == 0x55555500, "Buffer2[1] = %lx\n", Buffer2
[1]);
131 Status
= NtSetSystemInformation(SystemFlagsInformation
, NULL
, 0);
132 ok(Status
== STATUS_INFO_LENGTH_MISMATCH
, "NtSetSystemInformation returned %lx\n", Status
);
134 Status
= NtSetSystemInformation(SystemFlagsInformation
, NULL
, sizeof(SYSTEM_FLAGS_INFORMATION
) - 1);
135 ok(Status
== STATUS_INFO_LENGTH_MISMATCH
, "NtSetSystemInformation returned %lx\n", Status
);
137 Status
= NtSetSystemInformation(SystemFlagsInformation
, NULL
, sizeof(SYSTEM_FLAGS_INFORMATION
));
138 ok(Status
== STATUS_ACCESS_DENIED
, "NtSetSystemInformation returned %lx\n", Status
);
140 Status
= NtSetSystemInformation(SystemFlagsInformation
, (PVOID
)2, sizeof(SYSTEM_FLAGS_INFORMATION
));
141 ok(Status
== STATUS_DATATYPE_MISALIGNMENT
, "NtSetSystemInformation returned %lx\n", Status
);
143 Status
= RtlAdjustPrivilege(SE_DEBUG_PRIVILEGE
, TRUE
, FALSE
, &PrivilegeEnabled
);
144 if (!NT_SUCCESS(Status
))
146 skip("Cannot acquire SeDebugPrivilege\n");
150 Status
= NtSetSystemInformation(SystemFlagsInformation
, NULL
, sizeof(SYSTEM_FLAGS_INFORMATION
));
151 ok(Status
== STATUS_ACCESS_VIOLATION
, "NtSetSystemInformation returned %lx\n", Status
);
153 Status
= NtSetSystemInformation(SystemFlagsInformation
, (PVOID
)2, sizeof(SYSTEM_FLAGS_INFORMATION
));
154 ok(Status
== STATUS_DATATYPE_MISALIGNMENT
, "NtSetSystemInformation returned %lx\n", Status
);
156 Status
= NtSetSystemInformation(SystemFlagsInformation
, (PVOID
)4, sizeof(SYSTEM_FLAGS_INFORMATION
));
157 ok(Status
== STATUS_ACCESS_VIOLATION
, "NtSetSystemInformation returned %lx\n", Status
);
159 FlagsInfo
->Flags
= Flags
;
160 Status
= NtSetSystemInformation(SystemFlagsInformation
, (PUCHAR
)FlagsInfo
+ 2, sizeof(SYSTEM_FLAGS_INFORMATION
));
161 ok(Status
== STATUS_DATATYPE_MISALIGNMENT
, "NtSetSystemInformation returned %lx\n", Status
);
163 Status
= NtSetSystemInformation(SystemFlagsInformation
, (PUCHAR
)FlagsInfo
+ 2, sizeof(SYSTEM_FLAGS_INFORMATION
) - 1);
164 ok(Status
== STATUS_DATATYPE_MISALIGNMENT
, "NtSetSystemInformation returned %lx\n", Status
);
166 Status
= NtSetSystemInformation(SystemFlagsInformation
, FlagsInfo
, sizeof(SYSTEM_FLAGS_INFORMATION
) - 1);
167 ok(Status
== STATUS_INFO_LENGTH_MISMATCH
, "NtSetSystemInformation returned %lx\n", Status
);
169 Status
= NtSetSystemInformation(SystemFlagsInformation
, FlagsInfo
, sizeof(SYSTEM_FLAGS_INFORMATION
) + 1);
170 ok(Status
== STATUS_INFO_LENGTH_MISMATCH
, "NtSetSystemInformation returned %lx\n", Status
);
172 Status
= NtSetSystemInformation(SystemFlagsInformation
, FlagsInfo
, sizeof(SYSTEM_FLAGS_INFORMATION
));
173 ok(Status
== STATUS_SUCCESS
, "NtSetSystemInformation returned %lx\n", Status
);
175 ok(FlagsInfo
->Flags
== Flags
, "Flags = %lx, expected %lu\n", FlagsInfo
->Flags
, Flags
);
177 Status
= RtlAdjustPrivilege(SE_DEBUG_PRIVILEGE
, PrivilegeEnabled
, FALSE
, &PrivilegeEnabled
);
178 ok(Status
== STATUS_SUCCESS
, "RtlAdjustPrivilege returned %lx\n", Status
);
183 Test_TimeAdjustment(void)
185 SYSTEM_QUERY_TIME_ADJUST_INFORMATION TimeInfoOrg
, GetTimeInfo
;
186 SYSTEM_SET_TIME_ADJUST_INFORMATION SetTimeInfo
;
189 BOOLEAN PrivilegeEnabled
;
191 SetTimeInfo
.TimeAdjustment
= 0;
192 SetTimeInfo
.Enable
= 0;
194 /* Query original values */
195 Status
= NtQuerySystemInformation(SystemTimeAdjustmentInformation
,
200 /* Test without privilege */
201 Status
= NtSetSystemInformation(SystemTimeAdjustmentInformation
,
203 sizeof(SetTimeInfo
));
204 ok_ntstatus(Status
, STATUS_PRIVILEGE_NOT_HELD
);
206 /* Get the required privilege */
207 Status
= RtlAdjustPrivilege(SE_SYSTEMTIME_PRIVILEGE
, TRUE
, FALSE
, &PrivilegeEnabled
);
208 if (!NT_SUCCESS(Status
))
210 skip("Cannot acquire SeSystemTimePrivilege\n");
214 /* Test wrong length */
215 Status
= NtSetSystemInformation(SystemTimeAdjustmentInformation
,
217 sizeof(SetTimeInfo
) + 1);
218 ok_ntstatus(Status
, STATUS_INFO_LENGTH_MISMATCH
);
220 /* Test both members 0 */
221 Status
= NtSetSystemInformation(SystemTimeAdjustmentInformation
,
223 sizeof(SetTimeInfo
));
224 ok_ntstatus(Status
, STATUS_INVALID_PARAMETER_2
);
227 SetTimeInfo
.TimeAdjustment
= -1;
228 SetTimeInfo
.Enable
= 0;
229 Status
= NtSetSystemInformation(SystemTimeAdjustmentInformation
,
231 sizeof(SetTimeInfo
));
232 ok_ntstatus(Status
, STATUS_SUCCESS
);
234 /* Query the result */
235 Status
= NtQuerySystemInformation(SystemTimeAdjustmentInformation
,
239 ok_ntstatus(Status
, STATUS_SUCCESS
);
240 ok_long(GetTimeInfo
.TimeAdjustment
, -1);
241 ok_long(GetTimeInfo
.Enable
, 0);
243 /* set Enable to 1 */
244 SetTimeInfo
.TimeAdjustment
= -1;
245 SetTimeInfo
.Enable
= 1;
246 Status
= NtSetSystemInformation(SystemTimeAdjustmentInformation
,
248 sizeof(SetTimeInfo
));
249 ok_ntstatus(Status
, STATUS_SUCCESS
);
251 /* Query the result */
252 Status
= NtQuerySystemInformation(SystemTimeAdjustmentInformation
,
256 ok_ntstatus(Status
, STATUS_SUCCESS
);
257 ok_long(GetTimeInfo
.TimeAdjustment
, GetTimeInfo
.TimeIncrement
);
258 ok_long(GetTimeInfo
.Enable
, 1);
260 /* Restore original values */
261 SetTimeInfo
.TimeAdjustment
= TimeInfoOrg
.TimeAdjustment
;
262 SetTimeInfo
.Enable
= TimeInfoOrg
.Enable
;;
263 Status
= NtSetSystemInformation(SystemTimeAdjustmentInformation
,
265 sizeof(SetTimeInfo
));
266 ok_ntstatus(Status
, STATUS_SUCCESS
);
268 Status
= RtlAdjustPrivilege(SE_SYSTEMTIME_PRIVILEGE
, PrivilegeEnabled
, FALSE
, &PrivilegeEnabled
);
269 ok(Status
== STATUS_SUCCESS
, "RtlAdjustPrivilege returned %lx\n", Status
);
274 Test_KernelDebugger(void)
279 PSYSTEM_KERNEL_DEBUGGER_INFORMATION DebuggerInfo
= (PVOID
)Buffer
;
282 ReturnLength
= 0x55555555;
283 Status
= NtQuerySystemInformation(SystemKernelDebuggerInformation
, NULL
, 0, &ReturnLength
);
284 ok(Status
== STATUS_INFO_LENGTH_MISMATCH
, "NtQuerySystemInformation returned %lx\n", Status
);
285 ok(ReturnLength
== 0 ||
286 ntv6(ReturnLength
== sizeof(SYSTEM_KERNEL_DEBUGGER_INFORMATION
)), "ReturnLength = %lu\n", ReturnLength
);
288 ReturnLength
= 0x55555555;
289 RtlFillMemory(Buffer
, sizeof(Buffer
), 0x55);
290 Status
= NtQuerySystemInformation(SystemKernelDebuggerInformation
, DebuggerInfo
, sizeof(SYSTEM_KERNEL_DEBUGGER_INFORMATION
) - 1, &ReturnLength
);
291 ok(Status
== STATUS_INFO_LENGTH_MISMATCH
, "NtQuerySystemInformation returned %lx\n", Status
);
292 ok(ReturnLength
== 0 ||
293 ntv6(ReturnLength
== sizeof(SYSTEM_KERNEL_DEBUGGER_INFORMATION
)), "ReturnLength = %lu\n", ReturnLength
);
294 ok(Buffer
[0] == 0x55555555, "Buffer[0] = %lx\n", Buffer
[0]);
295 ok(Buffer
[1] == 0x55555555, "Buffer[1] = %lx\n", Buffer
[1]);
297 ReturnLength
= 0x55555555;
298 RtlFillMemory(Buffer
, sizeof(Buffer
), 0x55);
299 Status
= NtQuerySystemInformation(SystemKernelDebuggerInformation
, (PUCHAR
)DebuggerInfo
+ 1, sizeof(SYSTEM_KERNEL_DEBUGGER_INFORMATION
), &ReturnLength
);
300 ok(Status
== STATUS_SUCCESS
, "NtQuerySystemInformation returned %lx\n", Status
);
301 ok(ReturnLength
== sizeof(SYSTEM_KERNEL_DEBUGGER_INFORMATION
), "ReturnLength = %lu\n", ReturnLength
);
302 ok((Buffer
[0] & 0x55fefe55) == 0x55000055, "Buffer[0] = %lx\n", Buffer
[0]);
303 ok(Buffer
[1] == 0x55555555, "Buffer[1] = %lx\n", Buffer
[1]);
305 ReturnLength
= 0x55555555;
306 RtlFillMemory(Buffer
, sizeof(Buffer
), 0x55);
307 Status
= NtQuerySystemInformation(SystemKernelDebuggerInformation
, DebuggerInfo
, sizeof(SYSTEM_KERNEL_DEBUGGER_INFORMATION
), &ReturnLength
);
308 ok(Status
== STATUS_SUCCESS
, "NtQuerySystemInformation returned %lx\n", Status
);
309 ok(ReturnLength
== sizeof(SYSTEM_KERNEL_DEBUGGER_INFORMATION
), "ReturnLength = %lu\n", ReturnLength
);
310 ok(DebuggerInfo
->KernelDebuggerEnabled
== FALSE
||
311 DebuggerInfo
->KernelDebuggerEnabled
== TRUE
, "KernelDebuggerEnabled = %u\n", DebuggerInfo
->KernelDebuggerEnabled
);
312 ok(DebuggerInfo
->KernelDebuggerNotPresent
== FALSE
||
313 DebuggerInfo
->KernelDebuggerNotPresent
== TRUE
, "KernelDebuggerNotPresent = %u\n", DebuggerInfo
->KernelDebuggerNotPresent
);
315 /* Set - not supported */
316 DebuggerInfo
->KernelDebuggerEnabled
= FALSE
;
317 DebuggerInfo
->KernelDebuggerNotPresent
= TRUE
;
318 Status
= NtSetSystemInformation(SystemKernelDebuggerInformation
, DebuggerInfo
, sizeof(SYSTEM_KERNEL_DEBUGGER_INFORMATION
));
319 ok(Status
== STATUS_INVALID_INFO_CLASS
, "NtSetSystemInformation returned %lx\n", Status
);
322 START_TEST(NtSystemInformation
)
327 Status
= NtQuerySystemInformation(9999, NULL
, 0, NULL
);
328 ok(Status
== STATUS_INVALID_INFO_CLASS
, "NtQuerySystemInformation returned %lx\n", Status
);
330 Status
= NtQuerySystemInformation(9999, NULL
, 0, (PVOID
)1);
331 ok(Status
== STATUS_ACCESS_VIOLATION
||
332 ntv6(Status
== STATUS_INVALID_INFO_CLASS
), "NtQuerySystemInformation returned %lx\n", Status
);
334 ReturnLength
= 0x55555555;
335 Status
= NtQuerySystemInformation(9999, NULL
, 0, &ReturnLength
);
336 ok(Status
== STATUS_INVALID_INFO_CLASS
, "NtQuerySystemInformation returned %lx\n", Status
);
337 ok(ReturnLength
== 0 ||
338 ntv6(ReturnLength
== 0x55555555), "ReturnLength = %lu\n", ReturnLength
);
340 ReturnLength
= 0x55555555;
341 Status
= NtQuerySystemInformation(9999, NULL
, 1, &ReturnLength
);
342 ok(Status
== STATUS_ACCESS_VIOLATION
||
343 ntv6(Status
== STATUS_INVALID_INFO_CLASS
), "NtQuerySystemInformation returned %lx\n", Status
);
344 ok(ReturnLength
== 0x55555555, "ReturnLength = %lu\n", ReturnLength
);
346 ReturnLength
= 0x55555555;
347 Status
= NtQuerySystemInformation(9999, (PVOID
)1, 1, &ReturnLength
);
348 ok(Status
== STATUS_DATATYPE_MISALIGNMENT
||
349 ntv6(Status
== STATUS_INVALID_INFO_CLASS
), "NtQuerySystemInformation returned %lx\n", Status
);
350 ok(ReturnLength
== 0x55555555, "ReturnLength = %lu\n", ReturnLength
);
352 Status
= NtQuerySystemInformation(9999, NULL
, 1, (PVOID
)1);
353 ok(Status
== STATUS_ACCESS_VIOLATION
||
354 ntv6(Status
== STATUS_INVALID_INFO_CLASS
), "NtQuerySystemInformation returned %lx\n", Status
);
356 Status
= NtQuerySystemInformation(9999, (PVOID
)1, 1, (PVOID
)1);
357 ok(Status
== STATUS_DATATYPE_MISALIGNMENT
||
358 ntv6(Status
== STATUS_INVALID_INFO_CLASS
), "NtQuerySystemInformation returned %lx\n", Status
);
361 Test_TimeAdjustment();
362 Test_KernelDebugger();