アンマネージド ライブラリは、さまざまな段階を伴うアルゴリズムを使用して検出され、読み込まれます。
次のアルゴリズムでは、PInvoke
によってネイティブ ライブラリがどのように読み込まれるかを説明します。
PInvoke
のライブラリ読み込みアルゴリズム
PInvoke
では、アンマネージド アセンブリを読み込むときに、次のアルゴリズムが使用されます。
active
AssemblyLoadContext を決定します。 アンマネージド ライブラリ読み込みの場合、active
AssemblyLoadContext が、PInvoke
を定義するアセンブリを持っています。active
AssemblyLoadContext について、次の優先順位に従ってアセンブリを検索します。キャッシュを調べます。
System.Runtime.InteropServices.DllImportResolver 関数によって設定された現在の NativeLibrary.SetDllImportResolver(Assembly, DllImportResolver) デリゲートを呼び出します。
AssemblyLoadContext.LoadUnmanagedDll AssemblyLoadContext で
active
関数を呼び出します。AppDomain インスタンスのキャッシュを確認し、アンマネージ (ネイティブ) ライブラリプローブ ロジックを実行します。
AssemblyLoadContext.ResolvingUnmanagedDll AssemblyLoadContext の
active
イベントを発生させます。
.NET