ICorProfilerInfo::GetILToNativeMapping メソッドICorProfilerInfo::GetILToNativeMapping Method

Microsoft Intermediate Language (MSIL) オフセットから、指定した関数に含まれるコードのネイティブ オフセットへのマップを取得します。Gets a map from Microsoft intermediate language (MSIL) offsets to native offsets for the code contained in the specified function.


HRESULT GetILToNativeMapping(  
    [in] FunctionID functionId,  
    [in] ULONG32 cMap,  
    [out] ULONG32 *pcMap,  
    [out, size_is(cMap), length_is(*pcMap)]  
        COR_DEBUG_IL_TO_NATIVE_MAP map[]);  


[in] コードを含む関数の ID。[in] The ID of the function that contains the code.

[in] map 配列の最大サイズ。[in] The maximum size of the map array.

[out]使用できる COR_DEBUG_IL_TO_NATIVE_MAP 構造体の総数。[out] The total number of available COR_DEBUG_IL_TO_NATIVE_MAP structures.

[out] COR_DEBUG_IL_TO_NATIVE_MAP 構造体の配列。各構造体はオフセットを指定します。[out] An array of COR_DEBUG_IL_TO_NATIVE_MAP structures, each of which specifies the offsets. GetILToNativeMapping メソッドから制御が戻ると、COR_DEBUG_IL_TO_NATIVE_MAP 構造体の一部または全部が map に格納されます。After the GetILToNativeMapping method returns, map will contain some or all of the COR_DEBUG_IL_TO_NATIVE_MAP structures.


GetILToNativeMapping メソッドは、COR_DEBUG_IL_TO_NATIVE_MAP 構造体の配列を返します。The GetILToNativeMapping method returns an array of COR_DEBUG_IL_TO_NATIVE_MAP structures. ネイティブ命令の特定の範囲がコードの特別な領域 (プロローグなど) に対応することを伝えるために、配列内のエントリは、その ilOffset フィールドをCorDebugIlToNativeMappingTypes列挙値に設定できます。To convey that certain ranges of native instructions correspond to special regions of code (for example, the prolog), an entry in the array can have its ilOffset field set to a value of the CorDebugIlToNativeMappingTypes enumeration.

GetILToNativeMapping から制御が戻ったら、map バッファーのサイズが十分で、すべての COR_DEBUG_IL_TO_NATIVE_MAP 構造体を格納できたかどうかを確認する必要があります。After GetILToNativeMapping returns, you must verify that the map buffer was large enough to contain all the COR_DEBUG_IL_TO_NATIVE_MAP structures. これを行うには、cMap の値を pcMap パラメーターの値と比較します。To do this, compare the value of cMap with the value of the pcMap parameter. pcMap 値 に COR_DEBUG_IL_TO_NATIVE_MAP 構造体のサイズを乗算した結果が cMap より大きい場合は、map バッファーの割り当てを増やし、cMap を新しい大きいサイズに更新した後、GetILToNativeMapping を再度呼び出します。If the pcMap value, when it is multiplied by the size of a COR_DEBUG_IL_TO_NATIVE_MAP structure, is larger than cMap, allocate a larger map buffer, update cMap with the new, larger size, and call GetILToNativeMapping again.

別の方法として、最初に GetILToNativeMapping を長さゼロの map バッファーで呼び出して、適切なバッファーのサイズを取得します。Alternatively, you can first call GetILToNativeMapping with a zero-length map buffer to obtain the correct buffer size. その後、バッファーのサイズを pcMap で返された値に設定し、GetILToNativeMapping を再度呼び出します。You can then set the buffer size to the value returned in pcMap and call GetILToNativeMapping again.


:システム要件」を参照してください。Platforms: See System Requirements.

ヘッダー : CorProf.idl、CorProf.hHeader: CorProf.idl, CorProf.h

ライブラリ: CorGuids.libLibrary: CorGuids.lib

.NET Framework のバージョン:2.0 以降で使用可能Available since 2.0.NET Framework Versions: 2.0 以降で使用可能Available since 2.0

関連項目See also