Freigeben über


ID3D12DeviceChild::GetDevice-Methode (d3d12.h)

Ruft einen Zeiger auf das Gerät ab, das diese Schnittstelle erstellt hat.

Syntax

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

Parameter

riid

Typ: REFIID

Der globally unique Identifier (GUID) für die Geräteschnittstelle. Die REFIID oder GUID der Schnittstelle zum Gerät kann mithilfe des Makros __uuidof() abgerufen werden. Beispielsweise ruft __uuidof(ID3D12Device) die GUID der Schnittstelle auf ein Gerät ab.

[out, optional] ppvDevice

Typ: void**

Ein Zeiger auf einen Speicherblock, der einen Zeiger auf die ID3D12Device-Schnittstelle für das Gerät empfängt.

Rückgabewert

Typ: HRESULT

Diese Methode gibt einen der Direct3D 12-Rückgabecodes zurück.

Hinweise

Bei allen zurückgegebenen Schnittstellen wird die Referenzanzahl um eins erhöht. Rufen Sie daher unbedingt ::release() für die zurückgegebenen Zeiger auf, bevor sie freigegeben werden, da sonst speicherlecks auftreten.

Beispiele

Das D3D12Multithreading-Beispiel verwendet ID3D12DeviceChild::GetDevice wie folgt:

// 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;
}

Weitere Informationen finden Sie im Beispielcode in der D3D12-Referenz.

Anforderungen

   
Zielplattform Windows
Kopfzeile d3d12.h
Bibliothek D3D12.lib
DLL D3D12.dll

Weitere Informationen

ID3D12DeviceChild