Hans Leidekker : kernel32: Retrieve the system affinity mask from ntdll.
Alexandre Julliard
julliard at wine.codeweavers.com
Wed Jan 21 15:16:21 CST 2015
Module: wine
Branch: master
Commit: b51476ad42827e830bf38e561847bda6fe11a4c5
URL: http://source.winehq.org/git/wine.git/?a=commit;h=b51476ad42827e830bf38e561847bda6fe11a4c5
Author: Hans Leidekker <hans at codeweavers.com>
Date: Wed Jan 21 13:23:36 2015 +0100
kernel32: Retrieve the system affinity mask from ntdll.
---
dlls/kernel32/process.c | 10 +++++++++-
1 file changed, 9 insertions(+), 1 deletion(-)
diff --git a/dlls/kernel32/process.c b/dlls/kernel32/process.c
index 396b7d4..8204dd9 100644
--- a/dlls/kernel32/process.c
+++ b/dlls/kernel32/process.c
@@ -3259,13 +3259,21 @@ BOOL WINAPI GetProcessAffinityMask( HANDLE hProcess, PDWORD_PTR process_mask, PD
{
NTSTATUS status = STATUS_SUCCESS;
- if (system_mask) *system_mask = (1 << NtCurrentTeb()->Peb->NumberOfProcessors) - 1;
if (process_mask)
{
if ((status = NtQueryInformationProcess( hProcess, ProcessAffinityMask,
process_mask, sizeof(*process_mask), NULL )))
SetLastError( RtlNtStatusToDosError(status) );
}
+ if (system_mask && status == STATUS_SUCCESS)
+ {
+ SYSTEM_BASIC_INFORMATION info;
+
+ if ((status = NtQuerySystemInformation( SystemBasicInformation, &info, sizeof(info), NULL )))
+ SetLastError( RtlNtStatusToDosError(status) );
+ else
+ *system_mask = info.ActiveProcessorsAffinityMask;
+ }
return !status;
}
More information about the wine-cvs
mailing list