共用方式為


ID3D12DeviceChild::GetDevice 方法 (d3d12.h)

取得建立這個介面之裝置的指標。

語法

HRESULT GetDevice(
                  REFIID riid,
  [out, optional] void   **ppvDevice
);

參數

riid

類型: REFIID

裝置介面的全域唯一識別碼 (GUID) 。 您可以使用 __uuidof () 宏來取得裝置介面的 REFIIDGUID。 例如,__uuidof (ID3D12Device) 會取得裝置介面的 GUID

[out, optional] ppvDevice

類型: void**

記憶體區塊的指標,可接收裝置 ID3D12Device 介面的指標。

傳回值

類型: HRESULT

這個方法會傳回其中一個 Direct3D 12 傳回碼

備註

任何傳回的介面都會以一個遞增的參考計數,因此請務必在傳回的指標上呼叫 ::release () ,否則您會有記憶體流失。

範例

D3D12Multithreading範例使用ID3D12DeviceChild::GetDevice,如下所示:

// Returns required size of a buffer to be used for data upload
inline UINT64 GetRequiredIntermediateSize(
    _In_ ID3D12Resource* pDestinationResource,
    _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource,
    _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources)
{
    D3D12_RESOURCE_DESC Desc = pDestinationResource->GetDesc();
    UINT64 RequiredSize = 0;
    
    ID3D12Device* pDevice;
    pDestinationResource->GetDevice(__uuidof(*pDevice), reinterpret_cast<void**>(&pDevice));
    pDevice->GetCopyableFootprints(&Desc, FirstSubresource, NumSubresources, 0, nullptr, nullptr, nullptr, &RequiredSize);
    pDevice->Release();
    
    return RequiredSize;
}

請參閱 D3D12 參考中的範例程式碼

需求

   
目標平台 Windows
標頭 d3d12.h
程式庫 D3D12.lib
Dll D3D12.dll

另請參閱

ID3D12DeviceChild