共用方式為


EnumerateCLRs 函式

提供一個機制來列舉進程中的CLR。

語法

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

參數

debuggeePID
[in]將列舉載入 CLR 之進程的進程識別碼。

ppHandleArrayOut
[out]數位的指標,其中包含用來繼續 CLR 啟動的事件句柄。 陣列中的每個句柄不保證都是有效的。 如果有效,句柄會當做對應運行時間位於 相同索引 ppStringArrayOut的繼續啟動事件使用。

ppStringArrayOut
[out]字串陣列的指標,這個陣列會指定進程中載入之 CLR 的完整路徑。

pdwArrayLengthOut
[out]DWORD 的指標,其中包含相同大小 ppHandleArrayOutpdwArrayLengthOut的長度。

返回值

S_OK
成功判斷程式中的 CLR 數目,並已正確填入對應的句柄和路徑陣列。

E_INVALIDARG
ppHandleArrayOutppStringArrayOut 為 null,或 pdwArrayLengthOut 為 null。

E_OUTOFMEMORY
函式無法為句柄和路徑陣列配置足夠的記憶體。

E_FAIL (或其他 E_ 傳回碼)
無法列舉載入的 CLR。

備註

針對 所 debuggeePID識別的目標進程,此函式會將路徑 ppStringArrayOut陣列傳回至進程中載入的 CLR;事件句柄的陣列, ppHandleArrayOut其可能包含相同索引上 CLR 的繼續啟動事件;以及數位的大小, pdwArrayLengthOut指定所載入的 CLR 數目。

在 Windows作系統上, debuggeePID 對應至 OS 進程識別碼。

ppHandleArrayOut 的記憶體ppStringArrayOut是由此函式所配置。 若要釋放配置的記憶體,您必須呼叫 CloseCLREnumeration 函式

您可以使用這兩個陣列參數設定為 null 來呼叫此函式,以傳回目標進程中的 CLR 計數。 從這個計數中,呼叫端可以推斷將建立的緩衝區大小: (sizeof(HANDLE) * count) + (sizeof(LPWSTR) * count) + (sizeof(WCHAR*) * count * MAX_PATH)

需求

平臺: 請參閱 .NET 支援的作系統

標頭: dbgshim.h

連結庫: dbgshim.dll、libdbgshim.so、libdbgshim.dylib

.NET 版本: 自 .NET Core 2.1 起提供