为运行时可调用包装器(RCW)信息定义传输缓冲区。
Note
此 API 最初旨在供运行时内部使用。 尽管现在支持第三方使用,但我们建议尽量使用 ICorDebug 和 ICorProfiler API。
Syntax
struct DacpRCWData : ZeroInit<DacpRCWData>
{
CLRDATA_ADDRESS identityPointer;
CLRDATA_ADDRESS unknownPointer;
CLRDATA_ADDRESS managedObject;
CLRDATA_ADDRESS jupiterObject;
CLRDATA_ADDRESS vtablePtr;
CLRDATA_ADDRESS creatorThread;
CLRDATA_ADDRESS ctxCookie;
LONG refCount;
LONG interfaceCount;
BOOL isJupiterObject;
BOOL supportsIInspectable;
BOOL isAggregated;
BOOL isContained;
BOOL isFreeThreaded;
BOOL isDisconnected;
HRESULT Request(ISOSDacInterface *sos, CLRDATA_ADDRESS rcw)
{
return sos->GetRCWData(rcw, this);
}
HRESULT IsDCOMProxy(ISOSDacInterface *sos, CLRDATA_ADDRESS rcw, BOOL* isDCOMProxy)
{
ISOSDacInterface2 *pSOS2 = nullptr;
HRESULT hr = sos->QueryInterface(__uuidof(ISOSDacInterface2), reinterpret_cast<LPVOID*>(&pSOS2));
if (SUCCEEDED(hr))
{
hr = pSOS2->IsRCWDCOMProxy(rcw, isDCOMProxy);
pSOS2->Release();
}
return hr;
}
};
Members
| 成员 | 说明 |
|---|---|
identityPointer |
COM 标识指针的地址。 |
unknownPointer |
指针的 IUnknown 地址。 |
managedObject |
与 RCW 关联的托管对象的地址。 |
jupiterObject |
关联的木星对象的地址。 |
vtablePtr |
vtable 指针的地址。 |
creatorThread |
创建 RCW 的线程的地址。 |
ctxCookie |
RCW 的上下文 Cookie。 |
refCount |
RCW 的引用计数。 |
interfaceCount |
与 RCW 关联的接口数。 |
isJupiterObject |
一个值,该值指示 RCW 是否表示木星对象。 |
supportsIInspectable |
一个值,该值指示 RCW 是否支持 IInspectable。 |
isAggregated |
一个值,该值指示 RCW 是否聚合。 |
isContained |
一个值,该值指示是否包含 RCW。 |
isFreeThreaded |
一个值,该值指示 RCW 是否为自由线程。 |
isDisconnected |
一个值,该值指示 RCW 是否已断开连接。 |
Request |
通过调用 ISOSDacInterface::GetRCWData填充结构。 |
IsDCOMProxy |
当该接口可用时,确定 RCW 是否是 ISOSDacInterface2::IsRCWDCOMProxyDCOM 代理。 |
Remarks
此结构位于运行时内,不会通过任何标头或库文件公开。 若要使用它,请定义上面指定的结构。
要求
平台:请参阅系统要求。
页眉: 没有
图书馆: 没有
.NET Framework 版本:自 4.7 起可用