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