Re: [Mingw-w64-public] [PATCH] include/libloaderapi: update header file
在 2019/9/6 7:43, JonY via Mingw-w64-public 写道: > On 9/5/19 5:27 PM, Biswapriyo Nath wrote: >> Did anyone see my previous patch? >> > > Yes, it made it fine to the mailing list, thanks. > Patch looks good to me. > > Sorry didn't see it yesterday. Pushed now. -- Best regards, LH_Mouse signature.asc Description: OpenPGP digital signature ___ Mingw-w64-public mailing list Mingw-w64-public@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mingw-w64-public
Re: [Mingw-w64-public] [PATCH] include/libloaderapi: update header file
On 9/5/19 5:27 PM, Biswapriyo Nath wrote: > Did anyone see my previous patch? > Yes, it made it fine to the mailing list, thanks. Patch looks good to me. signature.asc Description: OpenPGP digital signature ___ Mingw-w64-public mailing list Mingw-w64-public@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mingw-w64-public
Re: [Mingw-w64-public] [PATCH] include/libloaderapi: update header file
Did anyone see my previous patch? ___ Mingw-w64-public mailing list Mingw-w64-public@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mingw-w64-public
Re: [Mingw-w64-public] [PATCH] include/libloaderapi: update header file
Update #1 From 60bff388c319bccb15ad1b5ea339d5969e1bf37b Mon Sep 17 00:00:00 2001 From: Biswapriyo Nath Date: Mon, 2 Sep 2019 18:49:13 +0530 Subject: [PATCH] include/libloaderapi: update header file Signed-off-by: Biswapriyo Nath --- 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 0x2000 +#define LOAD_LIBRARY_SEARCH_SYSTEM32_NO_FORWARDER 0x4000 +#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 0x8000 +#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 ..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 +#include +#include
Re: [Mingw-w64-public] [PATCH] include/libloaderapi: update header file
在 2019/9/2 21:28, Biswapriyo Nath 写道: > * The attached patch is for primary inspection. > > * There are some functions like FindResourceW, LoadLibraryA, LoadLibraryW > are in libloaderapi.h in WinSDK but in mingw-w64 those are in winbase.h. > Any comment? They are in 'winbase.h' in WinSDK 8.1 and seem to have been moved elsewhere since an unknown revision, as they don't exist there any more. Anyway I think it is safe to do so, as 'winbase.h' includes 'libloaderapy.h'. > > * There is another new file libloaderapi2.h in WinSDK. In mingw-w64, should > I create a new file like that or add those in already existed > libloaderapi.h? > > > I would suggest the former to match MS's source structure. -- Best regards, LH_Mouse signature.asc Description: OpenPGP digital signature ___ Mingw-w64-public mailing list Mingw-w64-public@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mingw-w64-public
[Mingw-w64-public] [PATCH] include/libloaderapi: update header file
* The attached patch is for primary inspection. * There are some functions like FindResourceW, LoadLibraryA, LoadLibraryW are in libloaderapi.h in WinSDK but in mingw-w64 those are in winbase.h. Any comment? * There is another new file libloaderapi2.h in WinSDK. In mingw-w64, should I create a new file like that or add those in already existed libloaderapi.h? From 166f948724a7c2f9545664cdf372bb31c313e5a9 Mon Sep 17 00:00:00 2001 From: Biswapriyo Nath Date: Mon, 2 Sep 2019 18:49:13 +0530 Subject: [PATCH] include/libloaderapi: update header file Signed-off-by: Biswapriyo Nath --- mingw-w64-headers/include/libloaderapi.h | 29 1 file changed, 29 insertions(+) diff --git a/mingw-w64-headers/include/libloaderapi.h b/mingw-w64-headers/include/libloaderapi.h index ee002d90..d8a47c4e 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 0x2000 +#define LOAD_LIBRARY_SEARCH_SYSTEM32_NO_FORWARDER 0x4000 +#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 0x8000 +#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) @@ -138,6 +149,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 -- 2.22.0 ___ Mingw-w64-public mailing list Mingw-w64-public@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mingw-w64-public