From 39d42581f4dfdff8241ff54786960125f7d349c7 Mon Sep 17 00:00:00 2001 From: Thomas Faber Date: Sun, 12 Jul 2015 08:53:40 +0000 Subject: [PATCH] [NTDLL_APITEST] - Add some tests for NtQuerySystemInformation with invalid info class svn path=/trunk/; revision=68391 --- rostests/apitests/ntdll/SystemInfo.c | 36 ++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/rostests/apitests/ntdll/SystemInfo.c b/rostests/apitests/ntdll/SystemInfo.c index c096fbf4293..d432488ca30 100644 --- a/rostests/apitests/ntdll/SystemInfo.c +++ b/rostests/apitests/ntdll/SystemInfo.c @@ -271,6 +271,42 @@ Test_TimeAdjustment(void) START_TEST(NtSystemInformation) { + NTSTATUS Status; + ULONG ReturnLength; + + Status = NtQuerySystemInformation(9999, NULL, 0, NULL); + ok(Status == STATUS_INVALID_INFO_CLASS, "NtQuerySystemInformation returned %lx\n", Status); + + Status = NtQuerySystemInformation(9999, NULL, 0, (PVOID)1); + ok(Status == STATUS_ACCESS_VIOLATION || + ntv6(Status == STATUS_INVALID_INFO_CLASS), "NtQuerySystemInformation returned %lx\n", Status); + + ReturnLength = 0x55555555; + Status = NtQuerySystemInformation(9999, NULL, 0, &ReturnLength); + ok(Status == STATUS_INVALID_INFO_CLASS, "NtQuerySystemInformation returned %lx\n", Status); + ok(ReturnLength == 0 || + ntv6(ReturnLength == 0x55555555), "ReturnLength = %lu\n", ReturnLength); + + ReturnLength = 0x55555555; + Status = NtQuerySystemInformation(9999, NULL, 1, &ReturnLength); + ok(Status == STATUS_ACCESS_VIOLATION || + ntv6(Status == STATUS_INVALID_INFO_CLASS), "NtQuerySystemInformation returned %lx\n", Status); + ok(ReturnLength == 0x55555555, "ReturnLength = %lu\n", ReturnLength); + + ReturnLength = 0x55555555; + Status = NtQuerySystemInformation(9999, (PVOID)1, 1, &ReturnLength); + ok(Status == STATUS_DATATYPE_MISALIGNMENT || + ntv6(Status == STATUS_INVALID_INFO_CLASS), "NtQuerySystemInformation returned %lx\n", Status); + ok(ReturnLength == 0x55555555, "ReturnLength = %lu\n", ReturnLength); + + Status = NtQuerySystemInformation(9999, NULL, 1, (PVOID)1); + ok(Status == STATUS_ACCESS_VIOLATION || + ntv6(Status == STATUS_INVALID_INFO_CLASS), "NtQuerySystemInformation returned %lx\n", Status); + + Status = NtQuerySystemInformation(9999, (PVOID)1, 1, (PVOID)1); + ok(Status == STATUS_DATATYPE_MISALIGNMENT || + ntv6(Status == STATUS_INVALID_INFO_CLASS), "NtQuerySystemInformation returned %lx\n", Status); + Test_Flags(); Test_TimeAdjustment(); }