Freigeben über


PFND3DDDI_SETDISPLAYPRIVATEDRIVERFORMATCB Rückruffunktion (d3dumddi.h)

Die pfnSetDisplayPrivateDriverFormatCb-Funktion ändert das Attribut "Private-Format" einer Videodarstellungsquelle.

Syntax

PFND3DDDI_SETDISPLAYPRIVATEDRIVERFORMATCB Pfnd3dddiSetdisplayprivatedriverformatcb;

HRESULT Pfnd3dddiSetdisplayprivatedriverformatcb(
  HANDLE hDevice,
  const D3DDDICB_SETDISPLAYPRIVATEDRIVERFORMAT *unnamedParam2
)
{...}

Parameter

hDevice

Ein Handle für das Anzeigegerät (Grafikkontext).

unnamedParam2

pData- [in]

Ein Zeiger auf eine D3DDDICB_SETDISPLAYPRIVATEDRIVERFORMAT Struktur, die beschreibt, wie eine Videoreferentquelle formatiert wird.

Rückgabewert

pfnSetDisplayPrivateDriverFormatCb gibt einen der folgenden Werte zurück:

Rückgabecode Beschreibung
S_OK Die Quelle für die Präsentation von Videos wurde erfolgreich geändert.
E_INVALIDARG Parameter wurden überprüft und ermittelt, dass sie falsch sind.
E_FAIL pfnSetDisplayPrivateDriverFormatCb konnte das Attribut "Private-Format" der Quelle für die Präsentation von Videos nicht ändern.

Diese Funktion kann auch andere HRESULT-Werte zurückgeben.

Bemerkungen

Das Ändern des Private-Format-Attributs einer Video present-Quelle ist nützlich, um eine DirectX-Vollbildanwendung aufzunehmen, die ihre Flippingänderung erstellt, wenn die freigegebene GDI-primäre Oberfläche in einem nicht optimalen privaten Format für die DirectX-Vollbildanwendung verwendet wird. Angenommen, der Anzeige-Miniporttreiber erstellt immer die gemeinsam genutzte primäre GDI-Oberfläche als nicht geschwendet. Aus Leistungsgründen erfordert der Benutzermodusanzeigetreiber jedoch, dass alle Oberflächen in einer Flippingkette im Vollbildmodus geschwendet werden. Der Anzeigetreiber für den Benutzermodus konnte dann die Hintergrundpuffer als geschwommen erstellen und pfnSetDisplayPrivateDriverFormatCb aufrufen, um die freigegebene GDI-primäre Oberfläche in swizzled zu ändern.

Wenn der Aufruf von pfnSetDisplayPrivateDriverFormatCb fehlschlägt, sollte der Anzeigetreiber für den Benutzermodus fortgesetzt werden, ohne das Attribut "Private-Format" der Quelle für Die Videodarstellung zu ändern. Im vorherigen Beispiel kann der Treiber entweder die freigegebene Primäre als nicht geschwendet belassen und die Hintergrundpuffer geschwendet haben, oder der Treiber kann die Hintergrundpuffer in das nicht geschwerbte Format ändern.

Wenn der Anzeigetreiber für den Benutzermodus den D3DDDIERR_INCOMPATIBLEPRIVATEFORMAT Fehler von einem Aufruf der pfnSetDisplayModeCb-Funktion empfängt, kann der Treiber eine der folgenden Aktionen ausführen:

  • Ändern Sie das Attribut für das private Format der primären Oberfläche, und rufen Sie pfnSetDisplayModeCb erneut auf.
  • Rufen Sie pfnSetDisplayPrivateDriverFormatCb auf, und versuchen Sie, das Attribut "Private-Format" der Quelle für video present zu ändern. Der Treiber kann dann pfnSetDisplayModeCb erneut aufrufen.
Der Anzeigetreiber für den Benutzermodus kann pfnSetDisplayPrivateDriverFormatCb nur aufrufen, wenn das Version Mitglied der D3DDDIARG_CREATEDEVICE-Struktur auf größer als sieben festgelegt wurde, wenn das Anzeigegerät (durch den hDevice Parameter angegeben) in einem Aufruf der CreateDevice--Funktion des Treibers erstellt wurde.

Anforderungen

Anforderung Wert
mindestens unterstützte Client- Verfügbar in Windows Vista und höheren Versionen der Windows-Betriebssysteme.
Zielplattform- Desktop
Header- d3dumddi.h (include D3dumddi.h)

Siehe auch

CreateDevice-

D3DDDIARG_CREATEDEVICE

D3DDDICB_SETDISPLAYPRIVATEDRIVERFORMAT

D3DDDI_DEVICECALLBACKS

pfnSetDisplayModeCb