{
acpi_bus_get_device(DeviceData->AcpiHandle, &Device);
- length = swprintf(temp,
- L"ACPI\\%hs",
- Device->pnp.hardware_id);
+ if (strcmp(Device->pnp.hardware_id, "Processor") == 0)
+ {
+ length = wcslen(ProcessorIdString);
+ wcscpy(temp, ProcessorIdString);
+ }
+ else
+ {
+ length = swprintf(temp,
+ L"ACPI\\%hs",
+ Device->pnp.hardware_id);
+ }
}
else
{
extern struct acpi_device *power_button;
UNICODE_STRING ProcessorHardwareIds = {0, 0, NULL};
+LPWSTR ProcessorIdString = NULL;
LPWSTR ProcessorNameString = NULL;
ProcessorHardwareIds.MaximumLength = ProcessorHardwareIds.Length;
ProcessorHardwareIds.Buffer = HardwareIdsBuffer;
+ Length = (5 + VendorIdentifierLength + 3 + Level1Length + 1) * sizeof(WCHAR);
+ ProcessorIdString = ExAllocatePoolWithTag(PagedPool, Length, 'IpcA');
+ if (ProcessorIdString != NULL)
+ {
+ Length = swprintf(ProcessorIdString, L"ACPI\\%s_-_%.*s", ProcessorVendorIdentifier, Level1Length, ProcessorIdentifier);
+ ProcessorIdString[Length++] = UNICODE_NULL;
+ DPRINT("ProcessorIdString: %S\n", ProcessorIdString);
+ }
+
done:
if (ProcessorHandle != NULL)
ZwClose(ProcessorHandle);