Funzione EnumerateCLRs

Fornisce un meccanismo per l'enumerazione di 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 enumerati i CLR caricati.

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

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

pdwArrayLengthOut
[out] Puntatore a un valore DWORD che contiene la lunghezza di ppHandleArrayOut e pdwArrayLengthOut con dimensioni identiche.

Valore restituito

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

E_INVALIDARG
ppHandleArrayOut o ppStringArrayOut è Null oppure pdwArrayLengthOut è Null.

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

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

Osservazioni:

Per un processo di destinazione identificato da debuggeePID, la funzione restituisce una matrice di percorsi (ppStringArrayOut) ai CLR caricati nel processo, una matrice di handle di evento (ppHandleArrayOut) che può contenere un evento di avvio-continuazione del CLR per lo stesso indice, oltre alle dimensioni delle matrici (pdwArrayLengthOut) che specificano il numero di CLR caricati.

Nel sistema operativo Windows debuggeePID esegue il mapping a un identificatore di processo del sistema operativo.

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

Questa funzione può essere chiamata con entrambi i parametri di matrice impostati su Null per restituire il conteggio di CLR nel processo di destinazione. Da questo conteggio un chiamante è in grado di 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 .NET: disponibili a partire da .NET Core 2.1