DacpMethodTableData 结构

为方法表信息定义传输缓冲区。

Note

此 API 最初旨在供运行时内部使用。 尽管现在支持第三方使用,但我们建议尽量使用 ICorDebugICorProfiler API。

Syntax

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从方法表地址填充结构。

Remarks

此结构位于运行时内,不会通过任何标头或库文件公开。 若要使用它,请定义上面指定的结构。

要求

平台:请参阅系统要求
页眉: 没有
图书馆: 没有
.NET Framework 版本:自 4.7 起可用

另见