プロセス内の 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
) を返します。イベント ハンドルの配列、ppHandleArrayOut
。CLR の継続スタートアップ イベントが同じインデックスに含まれている可能性があります。配列のサイズ (pdwArrayLengthOut
)、読み込まれる CLR の数を指定します。
Windows オペレーティング システムでは、 debuggeePID
は OS プロセス識別子にマップされます。
ppHandleArrayOut
とppStringArrayOut
のメモリは、この関数によって割り当てられます。 割り当てられたメモリを解放するには、 CloseCLREnumeration 関数を呼び出す必要があります。
この関数は、ターゲット プロセス内の CLR の数を返すために、両方の配列パラメーターを null に設定して呼び出すことができます。 この数から、呼び出し元は、作成されるバッファーのサイズ ( (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 以降で使用可能
.NET