kernel32: Reimplement GetMaximumProcessorCount on top of GetLogicalProcessorInformationEx.

Signed-off-by: Alex Henrie <alexhenrie24@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Alex Henrie 2021-05-24 02:10:43 -06:00 committed by Alexandre Julliard
parent 6aeb297d20
commit 04114db90b
1 changed files with 25 additions and 2 deletions

View File

@ -668,9 +668,32 @@ DWORD WINAPI GetActiveProcessorCount(WORD group)
*/
DWORD WINAPI GetMaximumProcessorCount(WORD group)
{
DWORD cpus = system_info.NumberOfProcessors;
DWORD cpus = 0;
DWORD size = 0;
SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX *info;
FIXME("(0x%x): semi-stub, returning %u\n", group, cpus);
TRACE("(0x%x)\n", group);
if (!GetLogicalProcessorInformationEx(RelationGroup, NULL, &size)) return 0;
if (!(info = HeapAlloc(GetProcessHeap(), 0, size))) return 0;
if (!GetLogicalProcessorInformationEx(RelationGroup, info, &size))
{
HeapFree(GetProcessHeap(), 0, info);
return 0;
}
if (group == ALL_PROCESSOR_GROUPS)
{
for (group = 0; group < info->Group.ActiveGroupCount; group++)
cpus += info->Group.GroupInfo[group].MaximumProcessorCount;
}
else
{
if (group < info->Group.ActiveGroupCount)
cpus = info->Group.GroupInfo[group].MaximumProcessorCount;
}
HeapFree(GetProcessHeap(), 0, info);
return cpus;
}