Condividi tramite


Funzione EnumerateCLRs

Fornisce un meccanismo per enumerare clr in un processo.

Sintassi

HRESULT EnumerateCLRs (
    [in]  DWORD      debuggeePID,
    [out] HANDLE**   ppHandleArrayOut,
    [out] LPWSTR**   ppStringArrayOut,
    [out] DWORD*     pdwArrayLengthOut
);

Parametri

debuggeePID
[in] Identificatore del processo da cui verranno enumerate le clr caricate.

ppHandleArrayOut
[out] Puntatore a una matrice contenente handle di eventi usati per continuare l'avvio di CLR. Non è garantito che ogni handle nella matrice sia valido. Se valido, l'handle deve essere usato come evento di avvio continuo per il runtime corrispondente che si trova nello stesso indice di ppStringArrayOut.

ppStringArrayOut
[out] Puntatore a una matrice di stringhe che specificano percorsi completi a CLR caricati nel processo.

pdwArrayLengthOut
[out] Puntatore a un DWORD che contiene la lunghezza dell'oggetto di dimensioni ppHandleArrayOut uguali e pdwArrayLengthOut.

Valore restituito

S_OK
Il numero di CLR nel processo è stato determinato correttamente e le matrici di handle e percorso corrispondenti sono state riempite correttamente.

E_INVALIDARG
O ppHandleArrayOutppStringArrayOut è null oppure pdwArrayLengthOut è null.

E_OUTOFMEMORY
La funzione non è in grado di allocare memoria sufficiente per l'handle e le matrici di percorso.

E_FAIL (o altri E_ codici restituiti)
Impossibile enumerare clr caricati.

Osservazioni:

Per un processo di destinazione identificato da debuggeePID, la funzione restituisce una matrice di percorsi, ppStringArrayOut, a CLR caricati nel processo; una matrice di handle di eventi, ppHandleArrayOut, che può contenere un evento di avvio continuo per CLR nello stesso indice e le dimensioni delle matrici, pdwArrayLengthOut, che specifica il numero di CLR caricati.

Nel sistema operativo Windows viene debuggeePID eseguito il mapping a un identificatore del processo del sistema operativo.

La memoria per ppHandleArrayOut e ppStringArrayOut viene allocata da questa funzione. Per liberare la memoria allocata, è necessario chiamare CloseCLREnumeration Function.

Questa funzione può essere chiamata con entrambi i parametri di matrice impostati su Null per restituire il numero di CLR nel processo di destinazione. Da questo conteggio, un chiamante può dedurre le dimensioni del buffer che verrà creato: (sizeof(HANDLE) * count) + (sizeof(LPWSTR) * count) + (sizeof(WCHAR*) * count * MAX_PATH).

Requisiti

Piattaforme: Vedere Sistemi operativi supportati da .NET.

Intestazione: dbgshim.h

Libreria: dbgshim.dll, libdbgshim.so, libdbgshim.dylib

Versioni di .NET: Disponibile a partire da .NET Core 2.1