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