From fa804252423a4bbc309d38cf6ad50099bb15798f Mon Sep 17 00:00:00 2001
From: Austin English <austinenglish@gmail.com>
Date: Thu, 22 Jan 2015 22:49:59 -0600
Subject: [PATCH] kernel32: Add GetSystemFirmwareTable stub.

---
 .../api-ms-win-core-sysinfo-l1-2-0.spec                |  2 +-
 .../api-ms-win-core-sysinfo-l1-2-1.spec                |  2 +-
 dlls/kernel32/kernel32.spec                            |  1 +
 dlls/kernel32/process.c                                | 10 ++++++++++
 include/winbase.h                                      |  1 +
 5 files changed, 14 insertions(+), 2 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 47f44195a8c..d3df6bd76f8 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
@@ -9,7 +9,7 @@
 @ stdcall GetProductInfo(long long long long ptr) kernel32.GetProductInfo
 @ stdcall GetSystemDirectoryA(ptr long) kernel32.GetSystemDirectoryA
 @ stdcall GetSystemDirectoryW(ptr long) kernel32.GetSystemDirectoryW
-@ stub GetSystemFirmwareTable
+@ stdcall GetSystemFirmwareTable(long long ptr long) kernel32.GetSystemFirmwareTable
 @ stdcall GetSystemInfo(ptr) kernel32.GetSystemInfo
 @ stdcall GetSystemTime(ptr) kernel32.GetSystemTime
 @ stdcall GetSystemTimeAdjustment(ptr ptr ptr) kernel32.GetSystemTimeAdjustment
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 79bfc606a64..29262c5fc3b 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
@@ -11,7 +11,7 @@
 @ stdcall GetProductInfo(long long long long ptr) kernel32.GetProductInfo
 @ stdcall GetSystemDirectoryA(ptr long) kernel32.GetSystemDirectoryA
 @ stdcall GetSystemDirectoryW(ptr long) kernel32.GetSystemDirectoryW
-@ stub GetSystemFirmwareTable
+@ stdcall GetSystemFirmwareTable(long long ptr long) kernel32.GetSystemFirmwareTable
 @ stdcall GetSystemInfo(ptr) kernel32.GetSystemInfo
 @ stdcall GetSystemTime(ptr) kernel32.GetSystemTime
 @ stdcall GetSystemTimeAdjustment(ptr ptr ptr) kernel32.GetSystemTimeAdjustment
diff --git a/dlls/kernel32/kernel32.spec b/dlls/kernel32/kernel32.spec
index bd6d644bc48..71478dcd1da 100644
--- a/dlls/kernel32/kernel32.spec
+++ b/dlls/kernel32/kernel32.spec
@@ -650,6 +650,7 @@
 @ stdcall GetSystemDEPPolicy()
 @ stdcall GetSystemDirectoryA(ptr long)
 @ stdcall GetSystemDirectoryW(ptr long)
+@ stdcall GetSystemFirmwareTable(long long ptr long)
 @ stdcall GetSystemInfo(ptr)
 @ stdcall GetSystemPowerStatus(ptr)
 @ stdcall GetSystemRegistryQuota(ptr ptr)
diff --git a/dlls/kernel32/process.c b/dlls/kernel32/process.c
index 8204dd98228..b371e73d10c 100644
--- a/dlls/kernel32/process.c
+++ b/dlls/kernel32/process.c
@@ -4004,3 +4004,13 @@ HRESULT WINAPI UnregisterApplicationRestart(void)
     SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
     return S_OK;
 }
+
+/***********************************************************************
+ *           GetSystemFirmwareTable       (KERNEL32.@)
+ */
+UINT WINAPI GetSystemFirmwareTable(DWORD provider, DWORD id, PVOID buffer, DWORD size)
+{
+    FIXME("(%d %d %p %d):stub\n", provider, id, buffer, size);
+    SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
+    return 0;
+}
diff --git a/include/winbase.h b/include/winbase.h
index 3055d5f8abc..561819dba61 100644
--- a/include/winbase.h
+++ b/include/winbase.h
@@ -2008,6 +2008,7 @@ WINBASEAPI HANDLE      WINAPI GetStdHandle(DWORD);
 WINBASEAPI UINT        WINAPI GetSystemDirectoryA(LPSTR,UINT);
 WINBASEAPI UINT        WINAPI GetSystemDirectoryW(LPWSTR,UINT);
 #define                       GetSystemDirectory WINELIB_NAME_AW(GetSystemDirectory)
+WINBASEAPI UINT        WINAPI GetSystemFirmwareTable(DWORD,DWORD,PVOID,DWORD);
 WINBASEAPI VOID        WINAPI GetSystemInfo(LPSYSTEM_INFO);
 WINBASEAPI BOOL        WINAPI GetSystemPowerStatus(LPSYSTEM_POWER_STATUS);
 WINBASEAPI BOOL        WINAPI GetSystemRegistryQuota(PDWORD,PDWORD);
-- 
GitLab