Compartir a través de


Inicialización de la comunicación con el controlador de pantalla de Direct3D User-Mode

Para inicializar la comunicación con la DLL del controlador de pantalla del modo de usuario de Microsoft Direct3D versión 11, el entorno de ejecución de Direct3D carga primero el archivo DLL. El entorno de ejecución de Direct3D llama a la función OpenAdapter del controlador de pantalla en modo de usuario a través de la tabla de exportación del archivo DLL para abrir una instancia del adaptador de gráficos. La función OpenAdapter es la única función exportada del archivo DLL.

En la llamada a la función OpenAdapter del controlador, el tiempo de ejecución proporciona la función de devolución de llamada del adaptador pfnQueryAdapterInfoCb en el miembro pAdapterCallbacks de la estructura D3DDDIARG_OPENADAPTER . El runtime también proporciona su versión en los miembros Interface y Version de D3DDDIARG_OPENADAPTER. El controlador de pantalla en modo de usuario debe comprobar que puede usar esta versión del entorno de ejecución. El controlador de pantalla en modo de usuario devuelve una tabla de sus funciones específicas del adaptador en el miembro pAdapterFuncs de D3DDDIARG_OPENADAPTER.

El controlador de pantalla en modo de usuario debe llamar a la función de devolución de llamada del adaptador pfnQueryAdapterInfoCb para consultar las funcionalidades de hardware de gráficos desde el controlador de miniporte de pantalla.

El tiempo de ejecución llama a la función CreateDevice del controlador de pantalla en modo de usuario (una de las funciones específicas del adaptador del controlador) para crear un dispositivo de visualización para controlar una colección de estado de representación y completar la inicialización. Una vez completada la inicialización, el tiempo de ejecución de Direct3D puede llamar a las funciones proporcionadas por el controlador de pantalla para mostrar y el controlador de pantalla en modo de usuario puede llamar a las funciones proporcionadas por el entorno de ejecución.

Se llama a la función CreateDevice del controlador de pantalla en modo de usuario con una estructura de D3DDDIARG_CREATEDEVICE cuyos miembros están configurados de la siguiente manera para inicializar la interfaz del controlador de pantalla en modo de usuario:

  • El tiempo de ejecución establece Interface en la versión de la interfaz que el tiempo de ejecución requiere del controlador de pantalla en modo de usuario.

  • El tiempo de ejecución establece Version en un número que el controlador puede usar para identificar cuándo se creó el entorno de ejecución. Por ejemplo, el controlador puede usar el número de versión para diferenciar entre un entorno de ejecución publicado con Windows Vista y un runtime publicado con un Service Pack posterior, que podría contener una corrección que requiere el controlador.

  • El tiempo de ejecución establece hDevice para especificar el identificador que el controlador debe usar cuando el controlador llama de nuevo al tiempo de ejecución. El controlador genera un identificador único y lo pasa de nuevo al tiempo de ejecución en hDevice. El tiempo de ejecución debe usar el identificador hDevice devuelto en las llamadas posteriores al controlador.

  • El tiempo de ejecución proporciona una tabla de sus funciones de devolución de llamada específicas del dispositivo en la estructura de D3DDDI_DEVICECALLBACKS a la que apunta pCallbacks . El controlador de pantalla en modo de usuario llama a las funciones de devolución de llamada proporcionadas por el tiempo de ejecución para acceder a los servicios en modo kernel en el controlador de miniporte de pantalla.

  • El controlador de pantalla en modo de usuario devuelve una tabla de sus funciones específicas del dispositivo en la estructura D3DDDI_DEVICEFUNCS a la que apunta pDeviceFuncs .

Nota

El número de dispositivos de visualización (contextos de gráficos) que pueden existir simultáneamente solo está limitado por la memoria del sistema disponible.