Author: akhaldi Date: Sat Aug 27 00:59:24 2011 New Revision: 53462
URL: http://svn.reactos.org/svn/reactos?rev=53462&view=rev Log: * Partially revert r53257.
Modified: branches/arty-newcc/base/setup/usetup/settings.c
Modified: branches/arty-newcc/base/setup/usetup/settings.c URL: http://svn.reactos.org/svn/reactos/branches/arty-newcc/base/setup/usetup/set... ============================================================================== --- branches/arty-newcc/base/setup/usetup/settings.c [iso-8859-1] (original) +++ branches/arty-newcc/base/setup/usetup/settings.c [iso-8859-1] Sat Aug 27 00:59:24 2011 @@ -34,143 +34,6 @@ /* FUNCTIONS ****************************************************************/
static BOOLEAN -IsAcpiComputer(VOID) -{ - UNICODE_STRING MultiKeyPathU = RTL_CONSTANT_STRING(L"\Registry\Machine\HARDWARE\DESCRIPTION\System\MultifunctionAdapter"); - UNICODE_STRING IdentifierU = RTL_CONSTANT_STRING(L"Identifier"); - UNICODE_STRING AcpiBiosIdentifier = RTL_CONSTANT_STRING(L"ACPI BIOS"); - OBJECT_ATTRIBUTES ObjectAttributes; - PKEY_BASIC_INFORMATION pDeviceInformation = NULL; - ULONG DeviceInfoLength = sizeof(KEY_BASIC_INFORMATION) + 50 * sizeof(WCHAR); - PKEY_VALUE_PARTIAL_INFORMATION pValueInformation = NULL; - ULONG ValueInfoLength = sizeof(KEY_VALUE_PARTIAL_INFORMATION) + 50 * sizeof(WCHAR); - ULONG RequiredSize; - ULONG IndexDevice = 0; - UNICODE_STRING DeviceName, ValueName; - HANDLE hDevicesKey = NULL; - HANDLE hDeviceKey = NULL; - NTSTATUS Status; - BOOLEAN ret = FALSE; - - InitializeObjectAttributes(&ObjectAttributes, &MultiKeyPathU, OBJ_CASE_INSENSITIVE, NULL, NULL); - Status = NtOpenKey(&hDevicesKey, KEY_ENUMERATE_SUB_KEYS, &ObjectAttributes); - if (!NT_SUCCESS(Status)) - { - DPRINT("NtOpenKey() failed with status 0x%08lx\n", Status); - goto cleanup; - } - - pDeviceInformation = RtlAllocateHeap(RtlGetProcessHeap(), 0, DeviceInfoLength); - if (!pDeviceInformation) - { - DPRINT("RtlAllocateHeap() failed\n"); - Status = STATUS_NO_MEMORY; - goto cleanup; - } - - pValueInformation = RtlAllocateHeap(RtlGetProcessHeap(), 0, ValueInfoLength); - if (!pDeviceInformation) - { - DPRINT("RtlAllocateHeap() failed\n"); - Status = STATUS_NO_MEMORY; - goto cleanup; - } - - while (TRUE) - { - Status = NtEnumerateKey(hDevicesKey, IndexDevice, KeyBasicInformation, pDeviceInformation, DeviceInfoLength, &RequiredSize); - if (Status == STATUS_NO_MORE_ENTRIES) - break; - else if (Status == STATUS_BUFFER_OVERFLOW || Status == STATUS_BUFFER_TOO_SMALL) - { - RtlFreeHeap(RtlGetProcessHeap(), 0, pDeviceInformation); - DeviceInfoLength = RequiredSize; - pDeviceInformation = RtlAllocateHeap(RtlGetProcessHeap(), 0, DeviceInfoLength); - if (!pDeviceInformation) - { - DPRINT("RtlAllocateHeap() failed\n"); - Status = STATUS_NO_MEMORY; - goto cleanup; - } - Status = NtEnumerateKey(hDevicesKey, IndexDevice, KeyBasicInformation, pDeviceInformation, DeviceInfoLength, &RequiredSize); - } - if (!NT_SUCCESS(Status)) - { - DPRINT("NtEnumerateKey() failed with status 0x%08lx\n", Status); - goto cleanup; - } - IndexDevice++; - - /* Open device key */ - DeviceName.Length = DeviceName.MaximumLength = pDeviceInformation->NameLength; - DeviceName.Buffer = pDeviceInformation->Name; - InitializeObjectAttributes(&ObjectAttributes, &DeviceName, OBJ_CASE_INSENSITIVE, hDevicesKey, NULL); - Status = NtOpenKey( - &hDeviceKey, - KEY_QUERY_VALUE, - &ObjectAttributes); - if (!NT_SUCCESS(Status)) - { - DPRINT("NtOpenKey() failed with status 0x%08lx\n", Status); - goto cleanup; - } - - /* Read identifier */ - Status = NtQueryValueKey(hDeviceKey, &IdentifierU, KeyValuePartialInformation, pValueInformation, ValueInfoLength, &RequiredSize); - if (Status == STATUS_BUFFER_OVERFLOW || Status == STATUS_BUFFER_TOO_SMALL) - { - RtlFreeHeap(RtlGetProcessHeap(), 0, pValueInformation); - ValueInfoLength = RequiredSize; - pValueInformation = RtlAllocateHeap(RtlGetProcessHeap(), 0, ValueInfoLength); - if (!pValueInformation) - { - DPRINT("RtlAllocateHeap() failed\n"); - Status = STATUS_NO_MEMORY; - goto cleanup; - } - Status = NtQueryValueKey(hDeviceKey, &IdentifierU, KeyValuePartialInformation, pValueInformation, ValueInfoLength, &RequiredSize); - } - if (!NT_SUCCESS(Status)) - { - DPRINT("NtQueryValueKey() failed with status 0x%08lx\n", Status); - goto nextdevice; - } - else if (pValueInformation->Type != REG_SZ) - { - DPRINT("Wrong registry type: got 0x%lx, expected 0x%lx\n", pValueInformation->Type, REG_SZ); - goto nextdevice; - } - - ValueName.Length = ValueName.MaximumLength = pValueInformation->DataLength; - ValueName.Buffer = (PWCHAR)pValueInformation->Data; - if (ValueName.Length >= sizeof(WCHAR) && ValueName.Buffer[ValueName.Length / sizeof(WCHAR) - 1] == UNICODE_NULL) - ValueName.Length -= sizeof(WCHAR); - if (RtlCompareUnicodeString(&ValueName, &AcpiBiosIdentifier, FALSE) == 0) - { - DPRINT("Found ACPI BIOS\n"); - ret = TRUE; - goto cleanup; - } - -nextdevice: - NtClose(hDeviceKey); - hDeviceKey = NULL; - } - -cleanup: - if (pDeviceInformation) - RtlFreeHeap(RtlGetProcessHeap(), 0, pDeviceInformation); - if (pValueInformation) - RtlFreeHeap(RtlGetProcessHeap(), 0, pValueInformation); - if (hDevicesKey) - NtClose(hDevicesKey); - if (hDeviceKey) - NtClose(hDeviceKey); - return ret; -} - - -static BOOLEAN GetComputerIdentifier(PWSTR Identifier, ULONG IdentifierLength) { @@ -235,31 +98,15 @@ return FALSE; }
- if (IsAcpiComputer()) - { - if (pFullInfo->SubKeys == 1) - { - /* Computer is mono-CPU */ - ComputerIdentifier = L"ACPI UP"; - } - else - { - /* Computer is multi-CPUs */ - ComputerIdentifier = L"ACPI MP"; - } + if (pFullInfo->SubKeys == 1) + { + /* Computer is mono-CPU */ + ComputerIdentifier = L"PC UP"; } else { - if (pFullInfo->SubKeys == 1) - { - /* Computer is mono-CPU */ - ComputerIdentifier = L"PC UP"; - } - else - { - /* Computer is multi-CPUs */ - ComputerIdentifier = L"PC MP"; - } + /* Computer is multi-CPUs */ + ComputerIdentifier = L"PC MP"; }
RtlFreeHeap(RtlGetProcessHeap(), 0, pFullInfo);