DacpObjectData 结构

定义运行时对象信息的传输缓冲区。

Note

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

Syntax

struct DacpObjectData : ZeroInit<DacpObjectData>
{
    CLRDATA_ADDRESS MethodTable;
    DacpObjectType ObjectType;
    ULONG64 Size;
    CLRDATA_ADDRESS ElementTypeHandle;
    CorElementType ElementType;
    DWORD dwRank;
    ULONG64 dwNumComponents;
    ULONG64 dwComponentSize;
    CLRDATA_ADDRESS ArrayDataPtr;
    CLRDATA_ADDRESS ArrayBoundsPtr;
    CLRDATA_ADDRESS ArrayLowerBoundsPtr;

    CLRDATA_ADDRESS RCW;
    CLRDATA_ADDRESS CCW;
    
    HRESULT Request(ISOSDacInterface *sos, CLRDATA_ADDRESS addr)
    {
        return sos->GetObjectData(addr, this);
    }
};

Members

成员 说明
MethodTable 对象的方法表的地址。
ObjectType 标识对象类型的 DacpObjectType 枚举 值。
Size 对象大小(以字节为单位)。
ElementTypeHandle 对于数组,元素类型句柄的地址。
ElementType 对于数组,元素类型的 CorElementType 值。
dwRank 对于数组,维度数。
dwNumComponents 对于数组,元素数。
dwComponentSize 对于数组,每个组件的大小(以字节为单位)。
ArrayDataPtr 对于数组,数组数据的地址。
ArrayBoundsPtr 对于数组,数组边界的地址。
ArrayLowerBoundsPtr 对于数组,数组下限的地址。
RCW 与对象关联的运行时可调用包装器的地址。
CCW 与对象关联的 COM 可调用包装器的地址。
Request 通过调用 ISOSDacInterface::GetObjectData填充结构。

Remarks

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

要求

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

另见