Compartir a través de


Inicialización de la comunicación con la versión 10 DDI de Direct3D

Para inicializar la comunicación con el archivo DLL del controlador de pantalla en modo de usuario versión 10 DDI, el entorno de ejecución de Direct3D versión 10 carga primero el archivo DLL si aún no está cargado. El entorno de ejecución de Direct3D llama a la función OpenAdapter10 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 OpenAdapter10 es la única función exportada de Direct3D versión 10 del archivo DLL.

En la llamada a la función OpenAdapter10 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 D3D10DDIARG_OPENADAPTER . El runtime también proporciona su versión en los miembros Interface y Version de D3D10DDIARG_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 no debe producir errores en las versiones más recientes del entorno de ejecución, ya que las versiones de tiempo de ejecución más recientes pueden usar versiones anteriores de DDI y, por lo tanto, pueden comunicarse correctamente con los controladores que implementan esas versiones anteriores de DDI. El controlador de pantalla en modo usuario devuelve una tabla de sus funciones específicas del adaptador en el miembro pAdapterFuncs de D3D10DDIARG_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(D3D10) 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 entorno de ejecución de la versión 10 de Direct3D puede llamar a las funciones de direct3D proporcionadas por el controlador de pantalla direct3D, 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(D3D10) del controlador de pantalla en modo de usuario con una estructura de D3D10DDIARG_CREATEDEVICE cuyos miembros están configurados de la siguiente manera para inicializar la versión 10 DDI 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 hRTDevice para especificar el identificador que el controlador debe usar cuando el controlador llama de nuevo al tiempo de ejecución.

  • El tiempo de ejecución establece hDrvDevice para especificar el identificador que usa el tiempo de ejecución en llamadas de controlador posteriores.

  • 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 pKTCallbacks . 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 D3D10DDI_DEVICEFUNCS a la que apunta pDeviceFuncs .

  • El tiempo de ejecución proporciona una estructura DXGI_DDI_BASE_ARGS a la que apunta DXGIBaseDDI . El entorno de ejecución y el controlador de pantalla en modo de usuario proporcionan su DDI de infraestructura de gráficos de DirectX a esta estructura.

  • El tiempo de ejecución establece hRTCoreLayer para especificar el identificador que el controlador debe usar cuando el controlador llama de nuevo al tiempo de ejecución para tener acceso a la funcionalidad principal de Direct3D 10 (es decir, en llamadas a las funciones que especifica el miembro pUMCallbacks ).

  • El tiempo de ejecución proporciona una tabla de sus funciones de devolución de llamada principales en la estructura D3D10DDI_CORELAYER_DEVICECALLBACKS a la que apunta pUMCallbacks . El controlador de pantalla en modo de usuario llama a las funciones de devolución de llamada principal proporcionadas por el tiempo de ejecución para actualizar el estado.

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.