Nikolay Sivov : ntdll: Add NtQuerySystemInformationEx() stub.
Alexandre Julliard
julliard at wine.codeweavers.com
Tue Apr 12 06:45:27 CDT 2016
Module: wine
Branch: stable
Commit: bd3e94210bb2ec05ce1c5a11983cd74851e782ab
URL: http://source.winehq.org/git/wine.git/?a=commit;h=bd3e94210bb2ec05ce1c5a11983cd74851e782ab
Author: Nikolay Sivov <nsivov at codeweavers.com>
Date: Mon Jan 4 01:56:47 2016 +0300
ntdll: Add NtQuerySystemInformationEx() stub.
Signed-off-by: Nikolay Sivov <nsivov at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
(cherry picked from commit 114123370bb4b97e7a6880cba8f4a348ecfb1991)
Signed-off-by: Michael Stefaniuc <mstefani at winehq.org>
---
dlls/ntdll/nt.c | 12 ++++++++++++
dlls/ntdll/ntdll.spec | 2 ++
dlls/ntdll/tests/info.c | 8 +++++---
include/winternl.h | 1 +
4 files changed, 20 insertions(+), 3 deletions(-)
diff --git a/dlls/ntdll/nt.c b/dlls/ntdll/nt.c
index 8ea1ddd..1cdad89 100644
--- a/dlls/ntdll/nt.c
+++ b/dlls/ntdll/nt.c
@@ -2139,6 +2139,18 @@ NTSTATUS WINAPI NtQuerySystemInformation(
}
/******************************************************************************
+ * NtQuerySystemInformationEx [NTDLL.@]
+ * ZwQuerySystemInformationEx [NTDLL.@]
+ */
+NTSTATUS WINAPI NtQuerySystemInformationEx(SYSTEM_INFORMATION_CLASS SystemInformationClass,
+ void *Query, ULONG QueryLength, void *SystemInformation, ULONG Length, ULONG *ResultLength)
+{
+ FIXME("(0x%08x,%p,%u,%p,%u,%p) stub\n", SystemInformationClass, Query, QueryLength, SystemInformation,
+ Length, ResultLength);
+ return STATUS_NOT_IMPLEMENTED;
+}
+
+/******************************************************************************
* NtSetSystemInformation [NTDLL.@]
* ZwSetSystemInformation [NTDLL.@]
*/
diff --git a/dlls/ntdll/ntdll.spec b/dlls/ntdll/ntdll.spec
index 524b5d0..04e9548 100644
--- a/dlls/ntdll/ntdll.spec
+++ b/dlls/ntdll/ntdll.spec
@@ -276,6 +276,7 @@
@ stdcall NtQuerySystemEnvironmentValue(ptr ptr long ptr)
@ stdcall NtQuerySystemEnvironmentValueEx(ptr ptr ptr ptr ptr)
@ stdcall NtQuerySystemInformation(long long long long)
+@ stdcall NtQuerySystemInformationEx(long ptr long ptr long ptr)
@ stdcall NtQuerySystemTime(ptr)
@ stdcall NtQueryTimer(ptr long ptr long ptr)
@ stdcall NtQueryTimerResolution(long long long)
@@ -1196,6 +1197,7 @@
@ stdcall ZwQuerySystemEnvironmentValue(ptr ptr long ptr) NtQuerySystemEnvironmentValue
@ stdcall ZwQuerySystemEnvironmentValueEx(ptr ptr ptr ptr ptr) NtQuerySystemEnvironmentValueEx
@ stdcall ZwQuerySystemInformation(long long long long) NtQuerySystemInformation
+@ stdcall ZwQuerySystemInformationEx(long ptr long ptr long ptr) NtQuerySystemInformationEx
@ stdcall ZwQuerySystemTime(ptr) NtQuerySystemTime
@ stdcall ZwQueryTimer(ptr long ptr long ptr) NtQueryTimer
@ stdcall ZwQueryTimerResolution(long long long) NtQueryTimerResolution
diff --git a/dlls/ntdll/tests/info.c b/dlls/ntdll/tests/info.c
index 4015ce2..32355cb 100644
--- a/dlls/ntdll/tests/info.c
+++ b/dlls/ntdll/tests/info.c
@@ -88,7 +88,7 @@ static BOOL InitFunctionPtrs(void)
/* starting with Win7 */
pNtQuerySystemInformationEx = (void *) GetProcAddress(hntdll, "NtQuerySystemInformationEx");
if (!pNtQuerySystemInformationEx)
- skip("NtQuerySystemInformationEx() is not supported, some tests will be skipped.\n");
+ win_skip("NtQuerySystemInformationEx() is not supported, some tests will be skipped.\n");
pGetLogicalProcessorInformationEx = (void *) GetProcAddress(hkernel32, "GetLogicalProcessorInformationEx");
@@ -689,15 +689,17 @@ static void test_query_logicalprocex(void)
len = 0;
relationship = RelationAll;
status = pNtQuerySystemInformationEx(SystemLogicalProcessorInformationEx, &relationship, sizeof(relationship), NULL, 0, &len);
+todo_wine {
ok(status == STATUS_INFO_LENGTH_MISMATCH, "got 0x%08x\n", status);
ok(len > 0, "got %u\n", len);
-
+}
len2 = 0;
ret = pGetLogicalProcessorInformationEx(RelationAll, NULL, &len2);
+todo_wine
ok(!ret && GetLastError() == ERROR_INSUFFICIENT_BUFFER, "got %d, error %d\n", ret, GetLastError());
ok(len == len2, "got %u, expected %u\n", len2, len);
- if (len == len2) {
+ if (len && len == len2) {
infoex = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, len);
infoex2 = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, len);
diff --git a/include/winternl.h b/include/winternl.h
index 788e15a..42ecb5b 100644
--- a/include/winternl.h
+++ b/include/winternl.h
@@ -2242,6 +2242,7 @@ NTSYSAPI NTSTATUS WINAPI NtQuerySemaphore(HANDLE,SEMAPHORE_INFORMATION_CLASS,PV
NTSYSAPI NTSTATUS WINAPI NtQuerySymbolicLinkObject(HANDLE,PUNICODE_STRING,PULONG);
NTSYSAPI NTSTATUS WINAPI NtQuerySystemEnvironmentValue(PUNICODE_STRING,PWCHAR,ULONG,PULONG);
NTSYSAPI NTSTATUS WINAPI NtQuerySystemInformation(SYSTEM_INFORMATION_CLASS,PVOID,ULONG,PULONG);
+NTSYSAPI NTSTATUS WINAPI NtQuerySystemInformationEx(SYSTEM_INFORMATION_CLASS,void*,ULONG,void*,ULONG,ULONG*);
NTSYSAPI NTSTATUS WINAPI NtQuerySystemTime(PLARGE_INTEGER);
NTSYSAPI NTSTATUS WINAPI NtQueryTimer(HANDLE,TIMER_INFORMATION_CLASS,PVOID,ULONG,PULONG);
NTSYSAPI NTSTATUS WINAPI NtQueryTimerResolution(PULONG,PULONG,PULONG);
More information about the wine-cvs
mailing list