プロセスで 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]等しいサイズの ppHandleArrayOut と pdwArrayLengthOutの長さを含む DWORD へのポインター。
戻り値
S_OK プロセス内の CLR の数が正常に決定され、対応するハンドル配列とパス配列が正しく入力されました。
E_INVALIDARG ppHandleArrayOut または ppStringArrayOut が null であるか、 pdwArrayLengthOut が null です。
E_OUTOFMEMORY 関数はハンドル配列とパス配列に十分なメモリを割り当てることができません。
E_FAIL (またはその他のE_リターン コード) 読み込まれた CLR を列挙できません。
解説
この関数は、debuggeePID で指定された対象プロセスについて、プロセスに読み込まれている CLR のパスの配列 (ppStringArrayOut)、同じインデックスにある CLR の継続スタートアップ イベントを含むイベント ハンドルの配列 (ppHandleArrayOut)、および読み込まれている CLR の数を示す配列のサイズ (pdwArrayLengthOut) を返します。
Windows オペレーティング システムでは、debuggeePID がプロセス識別子に対応づけられます。
ppHandleArrayOut および ppStringArrayOut のメモリはこの関数によって割り当てられます。 割り当てられているメモリを解放するには、CloseCLREnumeration 関数を呼び出す必要があります。
両方の配列パラメーターを null に設定してこの関数を呼び出すことで、対象プロセス内の CLR の数を取得できます。 この数から、呼び出し元は、作成されるバッファーのサイズを推論できます ((sizeof(HANDLE) * count) + (sizeof(LPWSTR) * count) + (sizeof(WCHAR*) * count * MAX_PATH))。
必要条件
:「システム要件」を参照してください。
ヘッダー: dbgshim.h
ライブラリ: dbgshim.dll
.NET Framework のバージョン: 3.5 SP1
.NET