Números de versión para Direct3D versión 10.1
Las versiones 10.0 y 10.1 de Direct3D proporcionan #defines que usa el controlador de pantalla en modo de usuario para el control de versiones. El controlador de pantalla en modo de usuario debe examinar el miembro Interface de las funciones D3D10DDIARG_OPENADAPTER, D3D10DDIARG_CREATEDEVICE y D3D10DDIARG_CALCPRIVATEDEVICESIZE que recibe el controlador en llamadas a OpenAdapter10, CreateDevice(D3D10) y CalcPrivateDeviceSize para determinar la versión de DDI de Direct3D que admite el entorno de ejecución de Direct3D. Los 16 bits más significativos del miembro Interface son el número de la versión principal de Direct3D DDI. Para las versiones 10.0 y 10.1 de Direct3D, este número es 10. Los 16 bits menos significativos del miembro Interface son la versión secundaria de DDI de Direct3D. Este valor de versión secundaria se aumenta cada vez que se introduce un cambio importante de DDI de Direct3D. Este valor de versión secundaria también se puede aumentar artificialmente para indicar un cambio de versión más fuerte. El siguiente #defines asociar una versión secundaria de DDI de Direct3D con un número de versión publicado (es decir, D3D10_0 == x, D3D10_1 == y, donde y > x).
El controlador de pantalla en modo de usuario solo debe examinar los 16 bits más significativos del miembro Version del D3D10DDIARG_OPENADAPTER, D3D10DDIARG_CREATEDEVICE y estructuras de D3D10DDIARG_CALCPRIVATEDEVICESIZE para determinar cuándo se compila el entorno de ejecución de Direct3D. Este valor se aumenta manualmente cada vez que hay un cambio de DDI de Direct3D no importante. Es posible que el controlador dependa de cada cambio de DDI no importante a lo largo del tiempo. Por lo tanto, el controlador debe asegurarse de que la versión de compilación de DDI pasada es mayor o igual que la *_BUILD_VERSION del controlador actual y no se supera si el controlador es incompatible (quizás, al mismo tiempo que proporciona una solución alternativa del Registro). Los 16 bits menos significativos del miembro Version son la versión de revisión DDI. Normalmente, los 16 bits menos significativos de la versión se usan para casos especiales del controlador en función de errores presentes en la API de Direct3D. El controlador debe crearse correctamente para todos los valores. Sin embargo, el controlador puede cambiar el comportamiento en función de determinados valores. Debe comparar con estos valores mediante >= porque los números pueden aumentar arbitrariamente debido a correcciones en tiempo de ejecución. Además, no debe usar "> (versión rota anterior)" (en lugar de ">= versión de trabajo") porque las nuevas revisiones pueden aparecer que tienen números de versión entre los dos números conocidos y no contienen las correcciones necesarias. Los siguientes #defines son para el control de versiones de DDI de Direct3D:
#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