Re: [Mingw-w64-public] [PATCH] include/libloaderapi: update header file

2019-09-06 Thread Liu Hao
在 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

2019-09-05 Thread 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.


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

2019-09-05 Thread Biswapriyo Nath
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

2019-09-02 Thread Biswapriyo Nath
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-09-02 Thread Liu Hao
在 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

2019-09-02 Thread 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?

* 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