メソッド テーブル情報のトランスポート バッファーを定義します。
Note
この API はもともと、ランタイムで内部使用するために設計されました。 現在はサードパーティによる使用がサポートされていますが、可能な場合は API ICorDebug および ICorProfiler を使用することをお勧めします。
構文
struct DacpMethodTableData : ZeroInit<DacpMethodTableData>
{
BOOL bIsFree; // everything else is NULL if this is true.
CLRDATA_ADDRESS Module;
CLRDATA_ADDRESS Class;
CLRDATA_ADDRESS ParentMethodTable;
WORD wNumInterfaces;
WORD wNumMethods;
WORD wNumVtableSlots;
WORD wNumVirtuals;
DWORD BaseSize;
DWORD ComponentSize;
mdTypeDef cl; // Metadata token
DWORD dwAttrClass; // cached metadata
BOOL bIsShared; // flags & enum_flag_DomainNeutral
BOOL bIsDynamic;
BOOL bContainsPointers;
HRESULT Request(ISOSDacInterface *sos, CLRDATA_ADDRESS addr)
{
return sos->GetMethodTableData(addr, this);
}
};
Members
| メンバー | 説明 |
|---|---|
bIsFree |
メソッド テーブルが空きかどうかを示す値。 このメンバーが TRUEされている場合は、他のすべてのメンバーが NULLされます。 |
Module |
メソッド テーブルを含むモジュールのアドレス。 |
Class |
メソッド テーブルの EEClass のアドレス。 |
ParentMethodTable |
親メソッド テーブルのアドレス。 |
wNumInterfaces |
型によって実装されるインターフェイスの数。 |
wNumMethods |
メソッド テーブルのメソッドの数。 |
wNumVtableSlots |
メソッド テーブル上の vtable スロットの数。 |
wNumVirtuals |
メソッド テーブルの仮想メソッドの数。 |
BaseSize |
型のインスタンスの基本サイズ。 |
ComponentSize |
配列または文字列インスタンスのコンポーネント サイズ。 |
cl |
型のメタデータ トークン。 |
dwAttrClass |
型のキャッシュされたメタデータ属性。 |
bIsShared |
メソッド テーブルが共有されているかどうかを示す値。 |
bIsDynamic |
メソッド テーブルが動的な型を表すかどうかを示す値。 |
bContainsPointers |
型のインスタンスにオブジェクト参照が含まれているかどうかを示す値。 |
Request |
ISOSDacInterface::GetMethodTableDataを呼び出して、メソッド テーブルのアドレスから構造体を設定します。 |
注釈
この構造体はランタイム内に存在し、ヘッダーまたはライブラリ ファイルを介して公開されることはありません。 これを使用するには、上で指定した構造を定義します。
必要条件
:「システム要件」を参照してください。
ヘッダ: 何一つ
図書館: 何一つ
.NET Framework のバージョン: 4.7 以降で利用可能
こちらも参照ください
GitHub で Microsoft と共同作業する
このコンテンツのソースは GitHub にあります。そこで、issue や pull request を作成および確認することもできます。 詳細については、共同作成者ガイドを参照してください。
.NET