EnumerateCLRs 函式

提供在處理程序中列舉 CLRs 的機制。

語法

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

參數

debuggeePID
[in] 將列舉從 CLRs 載入之程序的處理序識別碼。

ppHandleArrayOut
[out] 使用於繼續 CLR 啟動,包含事件控制代碼的陣列的指標。 不保證在陣列中的每個控點是有效的。 如果有效,控制代碼將做為相對應執行階段位於ppStringArrayOut 的相同索引中的繼續啟動事件。

ppStringArrayOut
[out] 處理序中載入 CLRs 的指定完整路徑的字串陣列的指標。

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

傳回值

S_OK
已成功確定處理序中的 CLR 數目,並且已正確填入對應的控制代碼和路徑陣列。

E_INVALIDARG
可能是 ppHandleArrayOutppStringArrayOut 為 null,或 pdwArrayLengthOut 為 null。

E_OUTOFMEMORY
函式無法為控制代碼和路徑陣列配置足夠的記憶體。

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

備註

所識別之目標處理序 debuggeePID,此函式會傳回路徑的陣列,ppStringArrayOut,至 CLRs 載入到處理序;事件控制代碼陣列 ppHandleArrayOut,其中可能包含在相同的索引為 CLR 的繼續啟動事件;以及陣列的大小,pdwArrayLengthOut,指定 CLRs 載入的數目。

在 Windows 作業系統上,debuggeePID 對應至 OS 處理序識別碼。

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

參數設定為 null 的兩個陣列都可以呼叫此函式,以傳回目標處理序中的 CLRs 計數。 從這個計數,呼叫端可以推斷將建立的緩衝區大小:(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 起提供