次の方法で共有


CreateVersionStringFromModule 関数

ターゲット プロセスの共通言語ランタイム (CLR) パスからバージョン文字列を作成します。

構文

HRESULT CreateVersionStringFromModule (
    [in]  DWORD      pidDebuggee,
    [in]  LPCWSTR    szModuleName,
    [out, size_is(cchBuffer),
    length_is(*pdwLength)] LPWSTR Buffer,
    [in]  DWORD      cchBuffer,
    [out] DWORD*     pdwLength
);

パラメーター

pidDebuggee
[in]ターゲット CLR が読み込まれるプロセスの識別子。

szModuleName
[in]プロセスに読み込まれるターゲット CLR への完全パスまたは相対パス。

pBuffer
[out]ターゲット CLR のバージョン文字列を格納するためのバッファーを返します。

cchBuffer
[in] pBufferのサイズ。

pdwLength
[out] pBufferによって返されるバージョン文字列の長さ。

戻り値

S_OK
ターゲット CLR のバージョン文字列が、 pBufferで正常に返されました。

E_INVALIDARG
szModuleName が null であるか、 pBuffer または cchBuffer が null です。 pBuffercchBuffer はどちらも null または null 以外である必要があります。

HRESULT_FROM_WIN32(ERROR_INSUFFICIENT_BUFFER)
pdwLengthcchBuffer より大きい。 pBuffercchBufferの両方に null を渡し、pdwLengthを使用して必要なバッファー サイズを照会した場合、これは予期される結果になる可能性があります。

HRESULT_FROM_WIN32(ERROR_MOD_NOT_FOUND)
szModuleName には、ターゲット プロセスの有効な CLR へのパスが含まれていません。

E_FAIL (またはその他の E_ リターン コード)
pidDebuggee は、有効なプロセスやその他のエラーを参照していません。

注釈

この関数は、 pidDebuggee で識別される CLR プロセスと、 szModuleNameで指定された文字列パスを受け入れます。 バージョン文字列は、 pBuffer が指すバッファーで返されます。 この文字列は関数ユーザーに対して不透明です。つまり、バージョン文字列自体に本質的な意味はありません。 この関数と CreateDebuggingInterfaceFromVersion 関数のコンテキストでのみ使用されます。

この関数は 2 回呼び出す必要があります。 初めて呼び出すときは、 pBuffercchBufferの両方に null を渡します。 これを行うと、 pBuffer に必要なバッファーのサイズが pdwLengthで返されます。 その後、関数を 2 回目に呼び出し、バッファーを pBuffer に渡し、そのサイズを cchBuffer で渡すことができます。

要求事項

プラットフォーム:サポートされている .NET オペレーティング システムを参照してください。

ヘッダー: dbgshim.h

ライブラリ: dbgshim.dll, libdbgshim.so, libdbgshim.dylib

.NET バージョン: .NET Core 2.1 以降で使用可能