次の方法で共有


ICorDebugMetaDataLocator::GetMetaData メソッド

デバッガーが要求した操作を完了するためにメタデータを必要とするモジュールの完全パスを返すようにデバッガーに求めます。

HRESULT GetMetaData(
      [in] LPCWSTR wszImagePath,
      [in] DWORD   dwImageTimeStamp,
      [in] DWORD   dwImageSize,
      [in] ULONG32 cchPathBuffer,
      [out] ULONG32 * pcchPathBuffer,
      [out, size_is(cchPathBuffer), length_is(*pcchPathBuffer)]
               WCHAR wszPathBuffer[]
      );

パラメーター

  • wszImagePath
    [入力] ファイルの完全パスを表す null で終わる文字列。 完全パスを使用できない場合は、ファイルの名前と拡張子 (filename.extension)。

  • dwImageTimeStamp
    [入力] イメージの PE ファイル ヘッダーのタイムスタンプ。 このパラメーターは、シンボル サーバー (SymSrv) の検索に使用される場合があります。

  • dwImageSize
    [入力] PE ファイル ヘッダーのイメージ サイズ。 このパラメーターは、SymSrv の検索に使用される場合があります。

  • cchPathBuffer
    [入力] wszPathBuffer の文字数。

  • pcchPathBuffer
    [出力] wszPathBuffer に書き込まれた WCHAR の数。

    メソッドが E_NOT_SUFFICIENT_BUFFER を返す場合は、パスを格納するために必要な WCHAR の数。

  • wszPathBuffer
    [出力] 要求されたメタデータを格納するファイルの完全パスをデバッガーがコピーするバッファーへのポインター。

    このファイルのメタデータへの読み取り専用のアクセスを要求する場合は、CorOpenFlags 列挙体の ofReadOnly フラグが使用されます。

戻り値

このメソッドは、次の特定の HRESULT と、メソッドの失敗を示す HRESULT エラーも返します。 これ以外のエラー HRESULT はすべて、ファイルを取得できないことを示します。

HRESULT

説明

S_OK

メソッドは正常に終了しました。 wszPathBuffer にはファイルの完全パスが含まれます。また終端は null です。

E_NOT_SUFFICIENT_BUFFER

wszPathBuffer の現在のサイズが十分ではないため、完全パスを保持できません。 この場合、pcchPathBuffer に必要な WCHAR の数 (終端の null 文字も含む) が格納され、要求されたバッファー サイズで GetMetaData がもう一度呼び出されます。

解説

wszImagePath にダンプのモジュールの完全パスが格納されている場合は、ダンプが収集されたコンピューターからのパスを示しています。 この場所にはファイルが存在しない、または同じ名前の正しくないファイルが格納されている可能性があります。

必要条件

プラットフォーム: 「.NET Framework システム要件」を参照

ヘッダー: CorDebug.idl、CorDebug.h

ライブラリ: CorGuids.lib

.NET Framework のバージョン: 4

参照

その他の技術情報

ICorDebugThread4 インターフェイス

デバッグのインターフェイス

デバッグ (アンマネージ API リファレンス)