From 81e115ab673af02b03e8026ba644313e9d786aea Mon Sep 17 00:00:00 2001 From: Steven Bell Date: Tue, 30 Jul 2019 14:33:23 -0700 Subject: [PATCH] kernel32: Add stub implementation of EnumSystemFirmwareTables. A recent change to the game Everquest adds a call to EnumSystemFirmwareTables. This of course causes the game to crash. Adding this stub call restores full functionality to the game. Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=47523 Signed-off-by: Steven Bell --- .../api-ms-win-core-sysinfo-l1-2-0.spec | 2 +- .../api-ms-win-core-sysinfo-l1-2-1.spec | 2 +- dlls/kernel32/cpu.c | 10 ++++++++++ dlls/kernel32/kernel32.spec | 2 +- dlls/kernelbase/kernelbase.spec | 2 +- 5 files changed, 14 insertions(+), 4 deletions(-) diff --git a/dlls/api-ms-win-core-sysinfo-l1-2-0/api-ms-win-core-sysinfo-l1-2-0.spec b/dlls/api-ms-win-core-sysinfo-l1-2-0/api-ms-win-core-sysinfo-l1-2-0.spec index 9b0567412d..1103427d4d 100644 --- a/dlls/api-ms-win-core-sysinfo-l1-2-0/api-ms-win-core-sysinfo-l1-2-0.spec +++ b/dlls/api-ms-win-core-sysinfo-l1-2-0/api-ms-win-core-sysinfo-l1-2-0.spec @@ -1,4 +1,4 @@ -@ stub EnumSystemFirmwareTables +@ stdcall EnumSystemFirmwareTables(long ptr long) kernel32.EnumSystemFirmwareTables @ stdcall GetComputerNameExA(long ptr ptr) kernel32.GetComputerNameExA @ stdcall GetComputerNameExW(long ptr ptr) kernel32.GetComputerNameExW @ stdcall GetLocalTime(ptr) kernel32.GetLocalTime diff --git a/dlls/api-ms-win-core-sysinfo-l1-2-1/api-ms-win-core-sysinfo-l1-2-1.spec b/dlls/api-ms-win-core-sysinfo-l1-2-1/api-ms-win-core-sysinfo-l1-2-1.spec index 6da2f25fa1..9a89b4b57a 100644 --- a/dlls/api-ms-win-core-sysinfo-l1-2-1/api-ms-win-core-sysinfo-l1-2-1.spec +++ b/dlls/api-ms-win-core-sysinfo-l1-2-1/api-ms-win-core-sysinfo-l1-2-1.spec @@ -1,5 +1,5 @@ @ stub DnsHostnameToComputerNameExW -@ stub EnumSystemFirmwareTables +@ stdcall EnumSystemFirmwareTables(long ptr long) kernel32.EnumSystemFirmwareTables @ stdcall GetComputerNameExA(long ptr ptr) kernel32.GetComputerNameExA @ stdcall GetComputerNameExW(long ptr ptr) kernel32.GetComputerNameExW @ stdcall GetLocalTime(ptr) kernel32.GetLocalTime diff --git a/dlls/kernel32/cpu.c b/dlls/kernel32/cpu.c index 7668a10ea4..2da36bdb54 100644 --- a/dlls/kernel32/cpu.c +++ b/dlls/kernel32/cpu.c @@ -365,3 +365,13 @@ UINT WINAPI GetSystemFirmwareTable(DWORD provider, DWORD id, void *buffer, DWORD HeapFree(GetProcessHeap(), 0, sfti); return buffer_size; } + + +/*********************************************************************** + * EnumSystemFirmwareTables (KERNEL32.@) + */ +UINT WINAPI EnumSystemFirmwareTables(DWORD provider, void *buffer, DWORD size) +{ + FIXME("%d, %p, %d stub, always returning 0\n", provider, buffer, size); + return 0; +} diff --git a/dlls/kernel32/kernel32.spec b/dlls/kernel32/kernel32.spec index 016c3022dc..fb8e4c9642 100644 --- a/dlls/kernel32/kernel32.spec +++ b/dlls/kernel32/kernel32.spec @@ -418,7 +418,7 @@ @ stdcall EnumResourceTypesW(long ptr long) @ stdcall EnumSystemCodePagesA(ptr long) @ stdcall EnumSystemCodePagesW(ptr long) -# @ stub EnumSystemFirmwareTables +@ stdcall EnumSystemFirmwareTables(long ptr long) @ stdcall EnumSystemGeoID(long long ptr) @ stdcall EnumSystemLanguageGroupsA(ptr long ptr) @ stdcall EnumSystemLanguageGroupsW(ptr long ptr) diff --git a/dlls/kernelbase/kernelbase.spec b/dlls/kernelbase/kernelbase.spec index 4bb2b55cde..91e78889e6 100644 --- a/dlls/kernelbase/kernelbase.spec +++ b/dlls/kernelbase/kernelbase.spec @@ -312,7 +312,7 @@ @ stdcall EnumResourceTypesExA(long ptr long long long) @ stdcall EnumResourceTypesExW(long ptr long long long) @ stdcall EnumSystemCodePagesW(ptr long) kernel32.EnumSystemCodePagesW -# @ stub EnumSystemFirmwareTables +@ stdcall EnumSystemFirmwareTables(long ptr long) kernel32.EnumSystemFirmwareTables @ stdcall EnumSystemGeoID(long long ptr) kernel32.EnumSystemGeoID @ stdcall EnumSystemLanguageGroupsW(ptr long ptr) kernel32.EnumSystemLanguageGroupsW @ stdcall EnumSystemLocalesA(ptr long) kernel32.EnumSystemLocalesA -- 2.17.1