Share via


IDXGIObject::SetPrivateData-Methode (dxgi.h)

Legt anwendungsdefinierte Daten auf das Objekt fest und ordnet diese Daten einer GUID zu.

Syntax

HRESULT SetPrivateData(
  [in] REFGUID    Name,
       UINT       DataSize,
  [in] const void *pData
);

Parameter

[in] Name

Typ: REFGUID

Eine GUID, die die Daten identifiziert. Verwenden Sie diese GUID in einem Aufruf von GetPrivateData , um die Daten abzurufen.

DataSize

Typ: UINT

Die Größe der Daten des Objekts.

[in] pData

Typ: const void*

Ein Zeiger auf die Daten des Objekts.

Rückgabewert

Typ: HRESULT

Gibt einen der DXGI_ERROR Werte zurück.

Hinweise

SetPrivateData erstellt eine Kopie der angegebenen Daten und speichert sie mit dem -Objekt.

Private Daten, die SetPrivateData im Objekt speichert, belegen denselben Speicherplatz wie private Daten, die von zugeordneten Direct3D-Objekten (z. B. von einem Microsoft Direct3D 11-Gerät über ID3D11Device::SetPrivateData oder von einem untergeordneten Direct3D 11-Gerät über ID3D11DeviceChild::SetPrivateData) gespeichert werden.

Die Debugebene meldet Speicherverluste, indem eine Liste von Objektschnittstellenzeigern zusammen mit ihren Anzeigenamen ausgegeben wird. Der Standardanzeigename ist "<unbenannt>". Sie können den Anzeigenamen festlegen, damit Sie ermitteln können, ob der entsprechende Objektschnittstellenzeiger das Leck verursacht hat. Verwenden Sie zum Festlegen des Anzeigenamens die SetPrivateData-Methode und die bekannte GUID für private Daten (WKPDID_D3DDebugObjectName), die sich in D3Dcommon.h befindet. Verwenden Sie beispielsweise den folgenden Code, um pContext den Anzeigenamen "Mein Name" zuzuweisen:


static const char c_szName[] = "My name";
hr = pContext->SetPrivateData( WKPDID_D3DDebugObjectName, sizeof( c_szName ) - 1, c_szName );

Sie können WKPDID_D3DDebugObjectName verwenden, um Speicherverluste aufzuspüren und die Leistungsmerkmale Ihrer Anwendungen zu verstehen. Diese Informationen spiegeln sich in der Ausgabe der Debugebene wider, die sich auf Speicherverluste (ID3D11Debug::ReportLiveDeviceObjects) bezieht, und in der Ereignisablaufverfolgung für Windows-Ereignisse, die wir zu Windows 8 hinzugefügt haben.

Anforderungen

   
Zielplattform Windows
Kopfzeile dxgi.h
Bibliothek DXGI.lib

Weitere Informationen

DXGI-Schnittstellen

IDXGIObject