Module: wine Branch: master Commit: 114123370bb4b97e7a6880cba8f4a348ecfb1991 URL: http://source.winehq.org/git/wine.git/?a=commit;h=114123370bb4b97e7a6880cba8...
Author: Nikolay Sivov nsivov@codeweavers.com Date: Mon Jan 4 01:56:47 2016 +0300
ntdll: Add NtQuerySystemInformationEx() stub.
Signed-off-by: Nikolay Sivov nsivov@codeweavers.com Signed-off-by: Alexandre Julliard julliard@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 55255a8..9ee1923 100644 --- a/dlls/ntdll/nt.c +++ b/dlls/ntdll/nt.c @@ -2172,6 +2172,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 8cabf95..a96edb1 100644 --- a/dlls/ntdll/ntdll.spec +++ b/dlls/ntdll/ntdll.spec @@ -274,6 +274,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) @@ -1193,6 +1194,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 199fb2d..ae907ed 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");
@@ -721,15 +721,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);