Udostępnij za pośrednictwem


IHostAssemblyStore::ProvideAssembly — Metoda

Pobiera odwołanie do zestawu, do którego nie odwołuje się klasa ICLRAssemblyReferenceList zwracana z elementu IHostAssemblyManager::GetNonHostStoreAssemblies. Środowisko uruchomieniowe języka wspólnego (CLR) wywołuje ProvideAssembly dla każdego zestawu, który nie jest wyświetlany na liście.

Składnia

HRESULT ProvideAssembly (  
    [in]  AssemblyBindInfo *pBindInfo,  
    [out] UINT64           *pAssemblyId,  
    [out] UINT64           *pHostContext,  
    [out] IStream          **ppStmAssemblyImage,  
    [out] IStream          **ppStmPDB  
);  

Parametry

pBindInfo
[in] Wskaźnik do wystąpienia AssemblyBindInfo , którego host używa do określania określonych cech powiązania, w tym obecności lub braku zasad przechowywania wersji oraz zestawu, z którym zestaw ma być powiązany.

pAssemblyId
[out] Wskaźnik do unikatowego identyfikatora żądanego zestawu dla tego IStreamelementu .

pHostContext
[out] Wskaźnik do danych specyficznych dla hosta, które są używane do określania dowodów żądanego zestawu bez konieczności wywołania platformy. pHostContextHostContext odpowiada właściwości klasy zarządzanejAssembly.

ppStmAssemblyImage
[out] Wskaźnik do adresu IStream zawierającego przenośny obraz wykonywalny (PE) do załadowania lub wartość null, jeśli nie można odnaleźć zestawu.

ppStmPDB
[out] Wskaźnik do adresu IStream , który zawiera informacje debugowania programu (PDB) lub wartość null, jeśli nie można odnaleźć pliku .pdb.

Wartość zwracana

HRESULT Opis
S_OK ProvideAssembly zwrócone pomyślnie.
HOST_E_CLRNOTAVAILABLE ClR nie został załadowany do procesu lub CLR jest w stanie, w którym nie może uruchomić zarządzanego kodu lub przetworzyć wywołania pomyślnie.
HOST_E_TIMEOUT Upłynął limit czasu wywołania.
HOST_E_NOT_OWNER Obiekt wywołujący nie jest właścicielem blokady.
HOST_E_ABANDONED Zdarzenie zostało anulowane, gdy zablokowany wątek lub światłowod czekał na nie.
E_FAIL Wystąpił nieznany katastrofalny błąd. Gdy metoda zwraca E_FAIL, clR nie będzie już można jej używać w ramach tego procesu. Kolejne wywołania metod hostingu zwracają HOST_E_CLRNOTAVAILABLE.
COR_E_FILENOTFOUND (0x80070002) Nie można odbyć żądanego zestawu.
E_NOT_SUFFICIENT_BUFFER Rozmiar buforu określony przez pAssemblyId program nie jest wystarczająco duży, aby przechowywać identyfikator, który ma zostać zwrócony przez hosta.

Uwagi

Wartość tożsamości zwrócona dla pAssemblyId jest określana przez hosta. Identyfikatory muszą być unikatowe w okresie istnienia procesu. ClR używa tej wartości jako unikatowego identyfikatora strumienia. Sprawdza każdą wartość względem wartości pAssemblyId zwracanych przez inne wywołania do elementu ProvideAssembly. Jeśli host zwraca tę samą pAssemblyId wartość dla innego IStreamelementu , clR sprawdza, czy zawartość tego strumienia została już zamapowana. Jeśli tak, środowisko uruchomieniowe ładuje istniejącą kopię obrazu zamiast mapowania nowej.

Wymagania

Platformy: Zobacz Wymagania systemowe.

Nagłówka: MSCorEE.h

Biblioteki: Uwzględnione jako zasób w MSCorEE.dll

wersje .NET Framework: dostępne od wersji 2.0

Zobacz też