DacpRCWData 結構

定義執行時可呼叫包裝器(RCW)資訊的傳輸緩衝區。

Note

此 API 原本是針對運行時間內部使用所設計。 雖然現在支援第三方使用,但建議您盡可能使用 ICorDebugICorProfiler 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 當該介面可用時,透過使用 ISOSDacInterface2::IsRCWDCOMProxy,判定 RCW 是否為 DCOM 代理。

Remarks

此結構位於運行時間內,不會透過任何標頭或庫檔案公開。 使用時,請依上述定義結構。

要求

平台:請參閱系統需求
標題:
圖書館:
.NET Framework 版本:自 4.7 版本起可用

也請參閱