http://bugs.winehq.org/show_bug.cgi?id=60503 Bug ID: 60503 Summary: CPU "Update Revision" value does not exist in Registry. Product: Wine Version: 11.19 Hardware: x86-64 OS: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: -unknown Assignee: wine-bugs@list.winehq.org Reporter: reelix@gmail.com Target Milestone: --- Distribution: --- Simply put, the `HARDWARE\\DESCRIPTION\\System\\CentralProcessor\\0` `Update Revision` value does not pull from the local CPU. This has been causing a large Warning message to appear in a few games (Aion 2 / Arknights: Endfield). This error can safely be ignored, but it can generally be a cause of alarm for users, so it would be better if it didn't happen :) Demo: 1.) Compile the following C program with: x86_64-w64-mingw32-gcc -static check_ucode.c -o check_ucode.exe -ladvapi32 ```c #include <windows.h> #include <stdio.h> #include <stdint.h> int main(void) { HKEY hKey; const wchar_t *subkey = L"HARDWARE\\DESCRIPTION\\System\\CentralProcessor\\0"; const wchar_t *valueName = L"Update Revision"; // 1. Open the key LONG res = RegOpenKeyExW(HKEY_LOCAL_MACHINE, subkey, 0, KEY_READ, &hKey); if (res != ERROR_SUCCESS) { fprintf(stderr, "[-] ERROR: CentralProcessor key does not exist. (Code: %ld)\n", res); return 1; } uint8_t buffer[64] = {0}; DWORD bufSize = sizeof(buffer); DWORD type = 0; // 2. Query 'Update Revision' res = RegQueryValueExW(hKey, valueName, NULL, &type, buffer, &bufSize); RegCloseKey(hKey); if (res != ERROR_SUCCESS) { fprintf(stderr, "[-] ERROR: 'Update Revision' value does not exist. (Code: %ld)\n", res); return 2; } // 3. Interpret either REG_DWORD or REG_BINARY uint32_t ucode = 0; if (type == REG_DWORD && bufSize >= sizeof(uint32_t)) { ucode = *(uint32_t *)buffer; } else if (type == REG_BINARY && bufSize >= 4) { ucode = buffer[0] | (buffer[1] << 8) | (buffer[2] << 16) | (buffer[3] << 24); } else { fprintf(stderr, "[-] ERROR: Value exists, but has an unexpected format (Type: %lu, Size: %lu bytes).\n", type, bufSize); return 3; } // 4. Output the value printf("[+] 'Update Revision' found: 0x%X\n", ucode); return 0; } ``` 2.) Run on Windows 3.) See the CPU Update Revision 4.) Run under Wine 5.) See ``` reelix@reelix-cachy ~/wine-bug wine --version wine-11.19 reelix@reelix-cachy ~/wine-bug wine ./check_ucode.exe [-] ERROR: 'Update Revision' value does not exist. (Code: 2) ``` -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.