summaryrefslogtreecommitdiff
path: root/src/vm/dllimport.h
diff options
context:
space:
mode:
authorSwaroop Sridhar <Swaroop.Sridhar@microsoft.com>2019-01-12 22:25:25 -0800
committerGitHub <noreply@github.com>2019-01-12 22:25:25 -0800
commit8b7d300c164971f573d8186e78204597a679c7d8 (patch)
tree4bae0726ff3cb5b97c43ad127b8b41a117e2c06f /src/vm/dllimport.h
parent908891ce9df8d94f28ec6a53a012d39d00c8e65d (diff)
downloadcoreclr-8b7d300c164971f573d8186e78204597a679c7d8.tar.gz
coreclr-8b7d300c164971f573d8186e78204597a679c7d8.tar.bz2
coreclr-8b7d300c164971f573d8186e78204597a679c7d8.zip
Add NativeLibrary Resolve Event (#21929)
This change adds the Native library resolving event, to be raised as the last attempt to resolve a native DLL in an AssemblyLoadContext. With this change, the DllImport resolution sequence is as follows (stopping at any step with successful resolution): * If the invoking-assembly is not in the default load context, call AssemblyLoadContext.LoadUnmanagedDll() * Run the default load logic, try loading from: * AppDomain cache * NATIVE_DLL_SEARCH_DIRECTORIES * Invoking-assembly directory, System32, etc. based on DllImportSearchPaths * Raise the ResolvingUnmanagedDll event API Review: https://github.com/dotnet/corefx/issues/32850 The ResolveEventTests triggered a pre-existing bug in the exception handling code (#21964). Disabling the test on ARM64 Windows until the issue is fixed.
Diffstat (limited to 'src/vm/dllimport.h')
-rw-r--r--src/vm/dllimport.h3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/vm/dllimport.h b/src/vm/dllimport.h
index 2f25e59570..1203803b9a 100644
--- a/src/vm/dllimport.h
+++ b/src/vm/dllimport.h
@@ -124,7 +124,8 @@ private:
static NATIVE_LIBRARY_HANDLE LoadFromNativeDllSearchDirectories(AppDomain* pDomain, LPCWSTR libName, DWORD flags, LoadLibErrorTracker *pErrorTracker);
static NATIVE_LIBRARY_HANDLE LoadFromPInvokeAssemblyDirectory(Assembly *pAssembly, LPCWSTR libName, DWORD flags, LoadLibErrorTracker *pErrorTracker);
- static NATIVE_LIBRARY_HANDLE LoadLibraryModuleViaHost(NDirectMethodDesc * pMD, AppDomain* pDomain, const wchar_t* wszLibName);
+ static NATIVE_LIBRARY_HANDLE LoadLibraryModuleViaHost(NDirectMethodDesc * pMD, LPCWSTR wszLibName);
+ static NATIVE_LIBRARY_HANDLE LoadLibraryModuleViaEvent(NDirectMethodDesc * pMD, LPCWSTR wszLibName);
static NATIVE_LIBRARY_HANDLE LoadLibraryModuleBySearch(NDirectMethodDesc * pMD, LoadLibErrorTracker * pErrorTracker, const wchar_t* wszLibName);
static NATIVE_LIBRARY_HANDLE LoadLibraryModuleBySearch(Assembly *callingAssembly, BOOL searchAssemblyDirectory, DWORD dllImportSearchPathFlag, LoadLibErrorTracker * pErrorTracker, const wchar_t* wszLibName);