Update #1
From 60bff388c319bccb15ad1b5ea339d5969e1bf37b Mon Sep 17 00:00:00 2001
From: Biswapriyo Nath <nathbap...@gmail.com>
Date: Mon, 2 Sep 2019 18:49:13 +0530
Subject: [PATCH] include/libloaderapi: update header file

Signed-off-by: Biswapriyo Nath <nathbap...@gmail.com>
---
 mingw-w64-headers/include/libloaderapi.h  | 41 +++++++++++++++++++++--
 mingw-w64-headers/include/libloaderapi2.h | 30 +++++++++++++++++
 2 files changed, 68 insertions(+), 3 deletions(-)
 create mode 100644 mingw-w64-headers/include/libloaderapi2.h

diff --git a/mingw-w64-headers/include/libloaderapi.h b/mingw-w64-headers/include/libloaderapi.h
index ee002d90..8aa1493c 100644
--- a/mingw-w64-headers/include/libloaderapi.h
+++ b/mingw-w64-headers/include/libloaderapi.h
@@ -69,6 +69,17 @@ extern "C" {
 #define LOAD_LIBRARY_SEARCH_SYSTEM32 0x800
 #define LOAD_LIBRARY_SEARCH_DEFAULT_DIRS 0x1000
 
+#if (NTDDI_VERSION >= NTDDI_WIN10_RS1)
+#define LOAD_LIBRARY_SAFE_CURRENT_DIRS 0x00002000
+#define LOAD_LIBRARY_SEARCH_SYSTEM32_NO_FORWARDER 0x00004000
+#else
+#define LOAD_LIBRARY_SEARCH_SYSTEM32_NO_FORWARDER LOAD_LIBRARY_SEARCH_SYSTEM32
+#endif
+
+#if (NTDDI_VERSION >= NTDDI_WIN10_RS2)
+#define LOAD_LIBRARY_OS_INTEGRITY_CONTINUITY 0x00008000
+#endif
+
 #define GET_MODULE_HANDLE_EX_FLAG_PIN (0x1)
 #define GET_MODULE_HANDLE_EX_FLAG_UNCHANGED_REFCOUNT (0x2)
 #define GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS (0x4)
@@ -77,11 +88,15 @@ extern "C" {
 #define ENUMRESNAMEPROC __MINGW_NAME_AW(ENUMRESNAMEPROC)
 #define ENUMRESTYPEPROC __MINGW_NAME_AW(ENUMRESTYPEPROC)
 
+  WINBASEAPI BOOL WINAPI EnumResourceNamesW(HMODULE hModule, LPCWSTR lpType, ENUMRESNAMEPROCW lpEnumFunc, LONG_PTR lParam);
+  WINBASEAPI HRSRC WINAPI FindResourceW(HMODULE hModule, LPCWSTR lpName, LPCWSTR lpType);
   WINBASEAPI HRSRC WINAPI FindResourceExW (HMODULE hModule, LPCWSTR lpType, LPCWSTR lpName, WORD wLanguage);
   WINBASEAPI DECLSPEC_NORETURN VOID WINAPI FreeLibraryAndExitThread (HMODULE hLibModule, DWORD dwExitCode);
   WINBASEAPI WINBOOL WINAPI FreeResource (HGLOBAL hResData);
   WINBASEAPI HMODULE WINAPI GetModuleHandleA (LPCSTR lpModuleName);
   WINBASEAPI HMODULE WINAPI GetModuleHandleW (LPCWSTR lpModuleName);
+  WINBASEAPI HMODULE WINAPI LoadLibraryA(LPCSTR lpLibFileName);
+  WINBASEAPI HMODULE WINAPI LoadLibraryW(LPCWSTR lpLibFileName);
   WINBASEAPI HMODULE WINAPI LoadLibraryExA (LPCSTR lpLibFileName, HANDLE hFile, DWORD dwFlags);
   WINBASEAPI HMODULE WINAPI LoadLibraryExW (LPCWSTR lpLibFileName, HANDLE hFile, DWORD dwFlags);
   WINBASEAPI HGLOBAL WINAPI LoadResource (HMODULE hModule, HRSRC hResInfo);
@@ -95,15 +110,17 @@ extern "C" {
   WINBASEAPI WINBOOL WINAPI GetModuleHandleExA (DWORD dwFlags, LPCSTR lpModuleName, HMODULE *phModule);
   WINBASEAPI WINBOOL WINAPI GetModuleHandleExW (DWORD dwFlags, LPCWSTR lpModuleName, HMODULE *phModule);
 
-#define PGET_MODULE_HANDLE_EX __MINGW_NAME_AW(PGET_MODULE_HANDLE_EX)
-#define GetModuleHandleEx __MINGW_NAME_AW(GetModuleHandleEx)
-
 #ifdef UNICODE
+#define EnumResourceNames EnumResourceNamesW
+#define FindResource FindResourceW
 #define FindResourceEx FindResourceExW
 #endif
 
+#define PGET_MODULE_HANDLE_EX __MINGW_NAME_AW(PGET_MODULE_HANDLE_EX)
 #define LoadString __MINGW_NAME_AW(LoadString)
 #define GetModuleHandle __MINGW_NAME_AW(GetModuleHandle)
+#define GetModuleHandleEx __MINGW_NAME_AW(GetModuleHandleEx)
+#define LoadLibrary __MINGW_NAME_AW(LoadLibrary)
 #define LoadLibraryEx __MINGW_NAME_AW(LoadLibraryEx)
 
 #define EnumResourceLanguages __MINGW_NAME_AW(EnumResourceLanguages)
@@ -138,6 +155,24 @@ WINBASEAPI HMODULE WINAPI GetModuleHandleW (LPCWSTR lpModuleName);
   WINBASEAPI DWORD WINAPI GetModuleFileNameW (HMODULE hModule, LPWSTR lpFilename, DWORD nSize);
   #define GetModuleFileName __MINGW_NAME_AW(GetModuleFileName)
 
+#define CURRENT_IMPORT_REDIRECTION_VERSION 1
+
+typedef struct _REDIRECTION_FUNCTION_DESCRIPTOR {
+    PCSTR DllName;
+    PCSTR FunctionName;
+    PVOID RedirectionTarget;
+} REDIRECTION_FUNCTION_DESCRIPTOR, *PREDIRECTION_FUNCTION_DESCRIPTOR;
+
+typedef const REDIRECTION_FUNCTION_DESCRIPTOR *PCREDIRECTION_FUNCTION_DESCRIPTOR;
+
+typedef struct _REDIRECTION_DESCRIPTOR {
+    ULONG Version;
+    ULONG FunctionCount;
+    PCREDIRECTION_FUNCTION_DESCRIPTOR Redirections;
+} REDIRECTION_DESCRIPTOR, *PREDIRECTION_DESCRIPTOR;
+
+typedef const REDIRECTION_DESCRIPTOR *PCREDIRECTION_DESCRIPTOR;
+
 #if WINVER >= 0x0601
   WINBASEAPI int WINAPI FindStringOrdinal (DWORD dwFindStringOrdinalFlags, LPCWSTR lpStringSource, int cchSource, LPCWSTR lpStringValue, int cchValue, WINBOOL bIgnoreCase);
 #endif
diff --git a/mingw-w64-headers/include/libloaderapi2.h b/mingw-w64-headers/include/libloaderapi2.h
new file mode 100644
index 00000000..f22c764d
--- /dev/null
+++ b/mingw-w64-headers/include/libloaderapi2.h
@@ -0,0 +1,30 @@
+/**
+ * This file is part of the mingw-w64 runtime package.
+ * No warranty is given; refer to the file DISCLAIMER within this package.
+ */
+#ifndef _APISETLIBLOADER2_
+#define _APISETLIBLOADER2_
+
+#include <apiset.h>
+#include <apisetcconv.h>
+#include <minwindef.h>
+#include <minwinbase.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_APP)
+#if (_WIN32_WINNT >= 0x0602)
+
+  WINBASEAPI HMODULE WINAPI LoadPackagedLibrary(LPCWSTR lpwLibFileName, DWORD Reserved);
+  WINBASEAPI BOOL WINAPI QueryOptionalDelayLoadedAPI(HMODULE hParentModule, LPCSTR lpDllName, LPCSTR lpProcName, DWORD Reserved);
+
+#endif
+#endif
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
-- 
2.22.0

_______________________________________________
Mingw-w64-public mailing list
Mingw-w64-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public

Reply via email to