IHostAssemblyStore::ProvideModule — Metoda
Rozwiązuje moduł w zestawie lub połączonym (ale nie osadzonym) pliku zasobów.
Składnia
HRESULT ProvideModule (
[in] ModuleBindInfo *pBindInfo,
[out] DWORD *pdwModuleId,
[out] IStream **ppStmModuleImage,
[out] IStream **ppStmPDB
);
Parametry
pBindInfo
[in] Wskaźnik do wystąpienia ModuleBindInfo , który opisuje żądaną nazwę modułu AppDomain, zestawu i modułu.
pdwModuleId
[out] Wskaźnik do unikatowego identyfikatora IStream
zawierającego załadowany moduł.
ppStmModuleImage
[out] Wskaźnik do adresu IStream
obiektu, który zawiera przenośny obraz wykonywalny (PE) do załadowania lub wartość null, jeśli nie można odnaleźć modułu.
ppStmPDB
[out] Wskaźnik do adresu obiektu, który zawiera informacje debugowania programu (PDB) dla żądanego IStream
modułu lub wartość null, jeśli nie można odnaleźć pliku .pdb.
Wartość zwracana
HRESULT | Opis |
---|---|
S_OK | ProvideModule zwrócone pomyślnie. |
HOST_E_CLRNOTAVAILABLE | Środowisko uruchomieniowe języka wspólnego (CLR) nie zostało załadowane do procesu lub clR jest w stanie, w którym nie może uruchomić kodu zarządzanego ani pomyślnie przetworzyć wywołania. |
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 znaleźć żądanego zestawu lub połączonego zasobu. |
E_NOT_SUFFICIENT_BUFFER | pdwModuleId nie jest wystarczająco duży, aby zawierać identyfikator, który ma zostać zwrócony przez hosta. |
Uwagi
Wartość tożsamości zwrócona dla pdwModuleId
jest określana przez hosta. Identyfikatory muszą być unikatowe w okresie istnienia procesu. ClR używa tej wartości jako unikatowego identyfikatora skojarzonego strumienia. Sprawdza każdą wartość względem wartości zwracanych pAssemblyId
przez wywołania funkcji ProvideAssembly i względem wartości pdwModuleId
zwracanych przez inne wywołania do ProvideModule
elementu . Jeśli host zwraca tę samą wartość identyfikatora dla innego IStream
elementu , clR sprawdza, czy zawartość tego strumienia została już zamapowana. Jeśli tak, clR ładuje istniejącą kopię obrazu zamiast mapowania nowej. W związku z tym identyfikator nie może również pokrywać się z identyfikatorami zestawów zwracanymi z ProvideAssembly
elementu .
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