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 IStream
elementu .
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. pHostContext
HostContext 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 IStream
elementu , 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