Module: wine Branch: master Commit: 5c50f658306119c40358721c9f0bf75f324e01dc URL: http://source.winehq.org/git/wine.git/?a=commit;h=5c50f658306119c40358721c9f...
Author: Michael Müller michael@fds-team.de Date: Fri Feb 12 08:37:32 2016 +0100
ntdll: Implement SystemRecommendedSharedDataAlignment class in NtQuerySystemInformation.
Signed-off-by: Michael Müller michael@fds-team.de Signed-off-by: Sebastian Lackner sebastian@fds-team.de Signed-off-by: Alexandre Julliard julliard@winehq.org
---
dlls/ntdll/nt.c | 11 +++++++++++ dlls/ntdll/tests/info.c | 16 ++++++++++++++++ include/winternl.h | 2 +- 3 files changed, 28 insertions(+), 1 deletion(-)
diff --git a/dlls/ntdll/nt.c b/dlls/ntdll/nt.c index a18dfae..47d7b31 100644 --- a/dlls/ntdll/nt.c +++ b/dlls/ntdll/nt.c @@ -2317,6 +2317,17 @@ NTSTATUS WINAPI NtQuerySystemInformation( RtlFreeHeap(GetProcessHeap(), 0, buf); } break; + case SystemRecommendedSharedDataAlignment: + { + len = sizeof(DWORD); + if (Length >= len) + { + if (!SystemInformation) ret = STATUS_ACCESS_VIOLATION; + else *((DWORD *)SystemInformation) = 64; + } + else ret = STATUS_INFO_LENGTH_MISMATCH; + } + break; default: FIXME("(0x%08x,%p,0x%08x,%p) stub\n", SystemInformationClass,SystemInformation,Length,ResultLength); diff --git a/dlls/ntdll/tests/info.c b/dlls/ntdll/tests/info.c index c9b6703..be355fb 100644 --- a/dlls/ntdll/tests/info.c +++ b/dlls/ntdll/tests/info.c @@ -1984,6 +1984,19 @@ static void test_thread_start_address(void) CloseHandle(thread); }
+static void test_query_data_alignment(void) +{ + ULONG ReturnLength; + NTSTATUS status; + DWORD value; + + value = 0xdeadbeef; + status = pNtQuerySystemInformation(SystemRecommendedSharedDataAlignment, &value, sizeof(value), &ReturnLength); + ok(status == STATUS_SUCCESS, "Expected STATUS_SUCCESS, got %08x\n", status); + ok(sizeof(value) == ReturnLength, "Inconsistent length %u\n", ReturnLength); + ok(value == 64, "Expected 64, got %u\n", value); +} + START_TEST(info) { char **argv; @@ -2116,4 +2129,7 @@ START_TEST(info)
trace("Starting test_thread_start_address()\n"); test_thread_start_address(); + + trace("Starting test_query_data_alignment()\n"); + test_query_data_alignment(); } diff --git a/include/winternl.h b/include/winternl.h index 51320f2..9b40fd4 100644 --- a/include/winternl.h +++ b/include/winternl.h @@ -826,7 +826,7 @@ typedef enum _SYSTEM_INFORMATION_CLASS { Unknown55, Unknown56, Unknown57, - Unknown58, + SystemRecommendedSharedDataAlignment = 58, Unknown59, Unknown60, Unknown61,