Freigeben über


Versionsnummern für Direct3D Version 10.1

Die Direct3D-Versionen 10.0 und 10.1 enthalten #defines, die der Benutzermodusanzeigetreiber für die Versionsverwaltung verwendet. Der Anzeigetreiber für den Benutzermodus muss den Interface-Member der D3D10DDIARG_OPENADAPTER-, D3D10DDIARG_CREATEDEVICE- und D3D10DDIARG_CALCPRIVATEDEVICESIZE-Strukturen untersuchen, die der Treiber in Aufrufen der Funktionen OpenAdapter10, CreateDevice(D3D10) und CalcPrivateDeviceSize empfängt , um die Version des Direct3D DDI zu bestimmen, die die Direct3D-Runtime unterstützt. Die bedeutendsten 16 Bits des Schnittstellenmembers ist die Nummer der Direct3D DDI-Hauptversion. Für Direct3D-Versionen 10.0 und 10.1 ist diese Zahl 10. Die am wenigsten signifikanten 16 Bits des Schnittstellenelements ist die Direct3D DDI-Nebenversion. Dieser Nebenversionswert wird bei jeder Einführung einer Breaking Change von Direct3D DDI angestoßen. Dieser Nebenversionswert kann auch künstlich getauft werden, um eine stärkere Versionsänderung anzuzeigen. Die folgende #defines eine Direct3D DDI-Nebenversion einer veröffentlichten Versionsnummer zuordnen (d. h. D3D10_0 == x, D3D10_1 == y > ).

Der Anzeigetreiber für den Benutzermodus sollte nur die wichtigsten 16 Bits des Versionselements der D3D10DDIARG_OPENADAPTER, D3D10DDIARG_CREATEDEVICE und D3D10DDIARG_CALCPRIVATEDEVICESIZE-Strukturen untersuchen, um zu bestimmen, wann die Direct3D-Runtime erstellt wird. Dieser Wert wird bei jeder änderung von Direct3D DDI manuell angedompelt. Der Treiber hängt möglicherweise von jeder nicht unterbrechenden DDI-Änderung im Laufe der Zeit ab. Daher sollte der Treiber sicherstellen, dass die in der DDI-Buildversion übergebene version größer oder gleich der *_BUILD_VERSION des aktuellen Treibers ist und ein Failout auftritt, wenn der Treiber inkompatibel ist (möglicherweise auch eine Problemumgehung für die Registrierung). Die am wenigsten signifikanten 16 Bits des Versionselements ist die DDI-Revisionsversion. Die am wenigsten signifikanten 16 Bits der Version werden in der Regel für Sonderfälle des Treibers verwendet, der auf Fehlern basiert, die in der Direct3D-API vorhanden sind. Der Treiber muss die Erstellung für alle Werte erfolgreich sein. Der Treiber kann das Verhalten jedoch abhängig von bestimmten Werten ändern. Sie sollten mit diesen Werten vergleichen, indem Sie = verwenden >, da die Zahlen aufgrund von Laufzeitkorrekturen willkürlich steigen können. Außerdem sollten Sie nicht "> (vorherige fehlerhafte Version)" (anstelle von ">= Funktionierende Version") verwenden, da möglicherweise neue Revisionen angezeigt werden, die Versionsnummern zwischen den beiden bekannten Nummern aufweisen und nicht die erforderlichen Korrekturen enthalten. Die folgenden #defines gelten für die Direct3D DDI-Versionsverwaltung:

#define D3D10_DDI_MAJOR_VERSION 10
#define D3D10_0_DDI_MINOR_VERSION 1
#define D3D10_0_DDI_INTERFACE_VERSION ((D3D10_DDI_MAJOR_VERSION << 16) | D3D10_0_DDI_MINOR_VERSION)
#define D3D10_0_DDI_BUILD_VERSION 4
#define D3D10_0_DDI_VERSION_VISTA_GOLD                          ( ( 4 << 16 ) | 6000 )
#define D3D10_0_DDI_VERSION_VISTA_GOLD_WITH_LINKED_ADAPTER_QFE  ( ( 4 << 16 ) | 6008 )
#define D3D10_0_DDI_IS_LINKED_ADAPTER_QFE_PRESENT(Version)  (Version >= D3D10_0_DDI_VERSION_VISTA_GOLD_WITH_LINKED_ADAPTER_QFE)

#if D3D10DDI_MINOR_HEADER_VERSION >= 1
#define D3D10_1_DDI_MINOR_VERSION 2
#define D3D10_1_DDI_INTERFACE_VERSION ((D3D10_DDI_MAJOR_VERSION << 16) | D3D10_1_DDI_MINOR_VERSION)
#define D3D10_1_DDI_BUILD_VERSION 1
// Note: d3d10_1 doesn't currently ship on vista gold. // This definition is included for completeness in the 
// event that it does at some point in the future:
#define D3D10_1_DDI_VERSION_VISTA_GOLD                          ( ( 1 << 16 ) | 6000 )
#define D3D10_1_DDI_VERSION_VISTA_SP1                           ( ( 1 << 16 ) | 6008 )
#define D3D10_1_DDI_IS_LINKED_ADAPTER_QFE_PRESENT(Version)  (Version >= D3D10_1_DDI_VERSION_VISTA_SP1)

#define D3D10on9_DDI_MINOR_VERSION 0
#define D3D10on9_DDI_INTERFACE_VERSION ((D3D10_DDI_MAJOR_VERSION << 16) | D3D10on9_DDI_MINOR_VERSION)
#define D3D10on9_DDI_BUILD_VERSION 0