=?UTF-8?Q?Michael=20M=C3=BCller=20?=: ntdll: Implement SystemRecommendedSharedDataAlignment class in NtQuerySystemInformation.
Alexandre Julliard
julliard at wine.codeweavers.com
Fri Feb 12 09:47:44 CST 2016
Module: wine
Branch: master
Commit: 5c50f658306119c40358721c9f0bf75f324e01dc
URL: http://source.winehq.org/git/wine.git/?a=commit;h=5c50f658306119c40358721c9f0bf75f324e01dc
Author: Michael Müller <michael at 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 at fds-team.de>
Signed-off-by: Sebastian Lackner <sebastian at fds-team.de>
Signed-off-by: Alexandre Julliard <julliard at 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,
More information about the wine-cvs
mailing list