Skip to content

Commit

Permalink
Refactor DllImport load functions
Browse files Browse the repository at this point in the history
This change refactors the code in DllImport in preparation
for implementing the new  NativeLibrary API here:
https://github.com/dotnet/corefx/issues/32015

In particular, it introduces a change in the semantics of the
internal LoadLibrary helper functions.

When a native library is loaded, there are two categories of callers
expecting different return values:
 * External callers likeAssemblyNative::InternalLoadUnmanagedDllFromPath()
   and the upcoming System.Runtime.Interop.Marshall.LoadLibrary()
   need the raw system handle
 * Internal callers like LoadLibraryModule() need the PAL registered handle

This change modifies the internal LoadLibraryModule* methods to work
in terms of native system handles, so that external callers can obrain
them directly. Methods requiring PAL-handles can register them explicitly.

There is no change in external signature of DllImport class, or the
native Dll cache in AppDomain class.
  • Loading branch information
swaroop-sridhar committed Nov 6, 2018
1 parent 8826f6f commit 6f43dff
Show file tree
Hide file tree
Showing 3 changed files with 2,191 additions and 143 deletions.
Loading

0 comments on commit 6f43dff

Please sign in to comment.