为方法表信息定义传输缓冲区。
Note
此 API 最初旨在供运行时内部使用。 尽管现在支持第三方使用,但我们建议尽量使用 ICorDebug 和 ICorProfiler 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 起可用