server: Don't report alternate 64-bit machines as supported.

This commit is contained in:
Alexandre Julliard 2024-02-07 15:46:11 +01:00
parent 818b577727
commit 4022fb9ba3
2 changed files with 15 additions and 23 deletions

View file

@ -3385,24 +3385,24 @@ NTSTATUS WINAPI NtQuerySystemInformationEx( SYSTEM_INFORMATION_CLASS class,
ret = STATUS_BUFFER_TOO_SMALL;
break;
}
for (i = 0; i < supported_machines_count; i++)
memset( machines, 0, len );
/* native machine */
machines[0].Machine = supported_machines[0];
machines[0].UserMode = 1;
machines[0].KernelMode = 1;
machines[0].Native = 1;
machines[0].Process = (supported_machines[0] == machine || is_machine_64bit( machine ));
machines[0].WoW64Container = 0;
machines[0].ReservedZero0 = 0;
/* wow64 machines */
for (i = 1; i < supported_machines_count; i++)
{
machines[i].Machine = supported_machines[i];
machines[i].UserMode = 1;
machines[i].KernelMode = machines[i].Native = i == 0;
machines[i].Process = supported_machines[i] == machine;
machines[i].WoW64Container = 0;
machines[i].ReservedZero0 = 0;
machines[i].WoW64Container = 1;
}
machines[i].Machine = 0;
machines[i].KernelMode = 0;
machines[i].UserMode = 0;
machines[i].Native = 0;
machines[i].Process = 0;
machines[i].WoW64Container = 0;
machines[i].ReservedZero0 = 0;
ret = STATUS_SUCCESS;
break;
}

View file

@ -1857,10 +1857,9 @@ static void init_supported_machines(void)
if (prefix_type == PREFIX_64BIT)
{
supported_machines[count++] = IMAGE_FILE_MACHINE_ARM64;
supported_machines[count++] = IMAGE_FILE_MACHINE_AMD64;
supported_machines[count++] = IMAGE_FILE_MACHINE_I386;
/* supported_machines[count++] = IMAGE_FILE_MACHINE_ARMNT; not supported yet */
}
supported_machines[count++] = IMAGE_FILE_MACHINE_ARMNT;
#else
#error Unsupported machine
#endif
@ -1877,15 +1876,9 @@ void init_registry(void)
static const WCHAR classes_i386[] = {'S','o','f','t','w','a','r','e','\\',
'C','l','a','s','s','e','s','\\',
'W','o','w','6','4','3','2','N','o','d','e'};
static const WCHAR classes_amd64[] = {'S','o','f','t','w','a','r','e','\\',
'C','l','a','s','s','e','s','\\',
'W','o','w','6','4','6','4','N','o','d','e'};
static const WCHAR classes_arm[] = {'S','o','f','t','w','a','r','e','\\',
'C','l','a','s','s','e','s','\\',
'W','o','w','A','A','3','2','N','o','d','e'};
static const WCHAR classes_arm64[] = {'S','o','f','t','w','a','r','e','\\',
'C','l','a','s','s','e','s','\\',
'W','o','w','A','A','6','4','N','o','d','e'};
static const WCHAR perflib[] = {'S','o','f','t','w','a','r','e','\\',
'M','i','c','r','o','s','o','f','t','\\',
'W','i','n','d','o','w','s',' ','N','T','\\',
@ -1956,8 +1949,7 @@ void init_registry(void)
{
case IMAGE_FILE_MACHINE_I386: name.str = classes_i386; name.len = sizeof(classes_i386); break;
case IMAGE_FILE_MACHINE_ARMNT: name.str = classes_arm; name.len = sizeof(classes_arm); break;
case IMAGE_FILE_MACHINE_AMD64: name.str = classes_amd64; name.len = sizeof(classes_amd64); break;
case IMAGE_FILE_MACHINE_ARM64: name.str = classes_arm64; name.len = sizeof(classes_arm64); break;
default: continue;
}
if ((key = create_key_recursive( hklm, &name, current_time )))
{