Share via


Funciones en tiempo de ejecución de Direct3D llamadas por User-Mode controladores de pantalla

En este tema se enumeran las funciones que proporciona el entorno de ejecución de Microsoft Direct3D al controlador de pantalla en modo de usuario. Entre ellas se incluyen las funciones de acceso a los servicios kernel del entorno de ejecución de Direct3D y las funciones del entorno de ejecución de Direct3D versión 10 y 11. Estas funciones forman parte de las interfaces de controlador de pantalla direct3D en modo de usuario que el sistema operativo implementa a través del tiempo de ejecución de Direct3D.

Funciones de acceso Kernel-Services en tiempo de ejecución de Direct3D

El entorno de ejecución de Microsoft Direct3D versión 9 proporciona punteros a funciones de devolución de llamada específicas del adaptador a través de miembros de la estructura de D3DDDI_ADAPTERCALLBACKS en una llamada a la función OpenAdapter del controlador de pantalla en modo de usuario. El tiempo de ejecución proporciona punteros para mostrar funciones de devolución de llamada específicas del dispositivo a través de los miembros de la estructura de D3DDDI_DEVICECALLBACKS en una llamada a la función CreateDevice del controlador de pantalla en modo de usuario.

El entorno de ejecución de Microsoft Direct3D versión 10 o posterior proporciona punteros a funciones de devolución de llamada específicas del adaptador a través de miembros de la estructura de D3DDDI_ADAPTERCALLBACKS en una llamada a la función OpenAdapter10 o OpenAdapter10_2 del controlador de pantalla en modo de usuario. El tiempo de ejecución proporciona punteros para mostrar funciones de devolución de llamada específicas del dispositivo a través de miembros de la estructura D3DDDI_DEVICECALLBACKS en una llamada a la función CreateDevice(D3D10) del controlador de pantalla en modo de usuario.

Estructuras de parámetros de Direct3D

Las siguientes estructuras se usan en las funciones de acceso a los servicios kernel del entorno de ejecución de Direct3D. El controlador de pantalla en modo de usuario pasa punteros a estas estructuras en parámetros de las funciones en tiempo de ejecución.

  • D3DDDI_UPDATEALLOCPROPERTY
  • D3DDDICB_ALLOCATE
  • D3DDDICB_CREATECONTEXT
  • D3DDDICB_CREATECONTEXTVIRTUAL
  • D3DDDICB_CREATEHWCONTEXT
  • D3DDDICB_CREATEHWQUEUE
  • D3DDDICB_CREATEOVERLAY
  • D3DDDICB_CREATEPAGINGQUEUE
  • D3DDDICB_CREATESYNCHRONIZATIONOBJECT2
  • D3DDDICB_CREATESYNCHRONIZATIONOBJECT
  • D3DDDICB_DESTROYHWCONTEXT
  • D3DDDICB_DESTROYHWQUEUE
  • D3DDDICB_DEALLOCATE
  • D3DDDICB_DEALLOCATE2
  • D3DDDICB_DESTROYCONTEXT
  • D3DDDICB_DESTROYOVERLAY
  • D3DDDICB_DESTROYSYNCHRONIZATIONOBJECT
  • D3DDDICB_ESCAPE
  • D3DDDICB_EVICT
  • D3DDDICB_FLIPOVERLAY
  • D3DDDICB_GETMULTISAMPLEMETHODLIST
  • D3DDDICB_LOCK
  • D3DDDICB_LOCK2FLAGS
  • D3DDDICB_OFFERALLOCATIONS
  • D3DDDICB_PRESENT
  • D3DDDICB_QUERYADAPTERINFO
  • D3DDDICB_QUERYRESIDENCY
  • D3DDDICB_RECLAIMALLOCATIONS
  • D3DDDICB_RECLAIMALLOCATIONS2
  • D3DDDICB_RENDER
  • D3DDDICB_SETDISPLAYMODE
  • D3DDDICB_SETDISPLAYPRIVATEDRIVERFORMAT
  • D3DDDICB_SETPRIORITY
  • D3DDDICB_SIGNALSYNCHRONIZATIONOBJECT
  • D3DDDICB_SIGNALSYNCHRONIZATIONOBJECT2
  • D3DDDICB_SIGNALSYNCHRONIZATIONOBJECTFROMCPU
  • D3DDDICB_SIGNALSYNCHRONIZATIONOBJECTFROMGPU
  • D3DDDICB_SIGNALSYNCHRONIZATIONOBJECTFROMGPU2
  • D3DDDICB_SUBMITCOMMAND
  • D3DDDICB_SUBMITCOMMANDFLAGS
  • D3DDDICB_SUBMITCOMMANDTOHWQUEUE
  • D3DDDICB_SUBMITSIGNALSYNCOBJECTSTOHWQUEUE
  • D3DDDICB_SUBMITWAITFORSYNCOBJECTSTOHWQUEUE
  • D3DDDICB_UNLOCK
  • D3DDDICB_UNLOCK2
  • D3DDDICB_UPDATEGPUVIRTUALADDRESS
  • D3DDDICB_UPDATEOVERLAY
  • D3DDDICB_WAITFORSYNCHRONIZATIONOBJECT
  • D3DDDICB_WAITFORSYNCHRONIZATIONOBJECT2
  • D3DDDICB_WAITFORSYNCHRONIZATIONOBJECTFROMCPU
  • D3DDDICB_WAITFORSYNCHRONIZATIONOBJECTFROMGPU

Funciones de devolución de llamada principal de Direct3D, versión 10 y posteriores

En esta sección se describen las funciones principales de devolución de llamada que los entornos de ejecución de Microsoft Direct3D 10 y versiones posteriores proporcionan al controlador de pantalla en modo de usuario. El tiempo de ejecución proporciona punteros a las funciones de devolución de llamada principales a través de los miembros de la estructura de D3D10DDI_CORELAYER_DEVICECALLBACKS en una llamada a la función CreateDevice(D3D10) del controlador de visualización en modo de usuario.

Funciones de devolución de llamada de control de Direct3D Runtime versión 10

A continuación se muestra una lista de funciones de devolución de llamada de control que los entornos de ejecución de Microsoft Direct3D 10 y versiones posteriores proporcionan al controlador de pantalla en modo de usuario a través de la estructura de D3D10DDI_CORELAYER_DEVICECALLBACKS.

Funciones de devolución de llamada de Direct3D Runtime versión 10 State-Refresh

A continuación se muestra una lista de las funciones de devolución de llamada de actualización de estado que el tiempo de ejecución de Microsoft Direct3D 10 proporciona al controlador de visualización en modo de usuario a través de la estructura de D3D10DDI_CORELAYER_DEVICECALLBACKS.

Dado que el tiempo de ejecución de Direct3D 10 almacena en caché los objetos de estado enlazados actualmente para las aplicaciones, el tiempo de ejecución también almacena en caché los objetos de estado enlazados actualmente para los controladores de pantalla en modo de usuario con una sobrecarga baja. Para cada llamada que realiza el controlador de visualización en modo de usuario a una función de devolución de llamada de actualización de estado, el tiempo de ejecución de Direct3D 10 realiza una llamada correspondiente a una función de estado de controlador en el mismo subproceso de ejecución antes de volver al código de llamada en el controlador. Para mejorar el rendimiento, las funciones de devolución de llamada de actualización de estado no realizan ninguna validación de parámetros.

Las funciones de devolución de llamada de actualización de estado son útiles cuando se intenta desarrollar un controlador sin estado o crear datos de preámbulo del búfer de comandos. Las funciones de devolución de llamada de actualización de estado también permiten que el controlador de pantalla en modo de usuario se beneficie de las marcas de agua altas que mantiene el tiempo de ejecución de Direct3D 10. Las marcas de agua altas indican el índice de ranura más grande, que podría ser distinto de NULL; por lo tanto, las marcas de agua elevadas mejoran los recorridos a través de tales ranuras.

Direct3D Runtime versión 10 Kernel-Services funciones de acceso

En esta sección se enumeran las funciones de acceso a los servicios kernel que proporciona el componente DirectX Graphics Infrastructure (DXGI) del entorno de ejecución de Microsoft Direct3D 10 al controlador de pantalla en modo de usuario. DXGI proporciona punteros a servicios kernel que acceden a funciones a través de miembros de la estructura de DXGI_DDI_BASE_CALLBACKS en una llamada a la función CreateDevice(D3D10) del controlador de pantalla en modo de usuario.

Funciones de Direct3D Runtime versión 11

En esta sección se describen las funciones principales de devolución de llamada que los entornos de ejecución de Microsoft Direct3D 11 y versiones posteriores proporcionan al controlador de pantalla en modo de usuario. El tiempo de ejecución proporciona punteros a las funciones de devolución de llamada principales a través de los miembros de la estructura de D3D11DDI_CORELAYER_DEVICECALLBACKS en una llamada a la función CreateDevice(D3D10) del controlador de visualización en modo de usuario.

Funciones de devolución de llamada de control de Direct3D Runtime versión 11

En esta sección se enumeran las funciones de devolución de llamada de control adicionales que los entornos de ejecución de Microsoft Direct3D 11 y versiones posteriores proporcionan al controlador de pantalla en modo de usuario.

Funciones de devolución de llamada de Direct3D Runtime versión 11 State-Refresh

En esta sección se enumeran las funciones de devolución de llamada de actualización de estado adicionales que los entornos de ejecución de Microsoft Direct3D versión 11 y posteriores proporcionan al controlador de pantalla en modo de usuario.

Dado que el tiempo de ejecución de Direct3D 11 almacena en caché los objetos de estado enlazados actualmente para las aplicaciones, el tiempo de ejecución también almacena en caché los objetos de estado enlazados actualmente para los controladores de pantalla en modo de usuario con una sobrecarga baja. Para cada llamada que realiza el controlador de visualización en modo de usuario a una función de devolución de llamada de actualización de estado, el tiempo de ejecución de Direct3D 11 realiza una llamada correspondiente a una función de estado de controlador en el mismo subproceso de ejecución antes de volver al código de llamada en el controlador. Para mejorar el rendimiento, las funciones de devolución de llamada de actualización de estado no realizan ninguna validación de parámetros.

Las funciones de devolución de llamada de actualización de estado son útiles al intentar desarrollar un controlador sin estado o crear datos de preámbulo del búfer de comandos. Las funciones de devolución de llamada de actualización de estado también permiten al controlador de pantalla en modo de usuario beneficiarse de las marcas de agua altas que mantiene el tiempo de ejecución de Direct3D 11. Las marcas de agua altas indican el índice de ranura más grande, que podría ser distinto de NULL; por lo tanto, las marcas de agua elevadas mejoran los recorridos a través de tales ranuras.

Funciones de Direct3D Runtime versión 12 y posteriores

Los entornos de ejecución de Microsoft Direct3D 12 y versiones posteriores proporcionan las siguientes funciones de devolución de llamada principales al controlador de pantalla en modo de usuario.

Consulte también

Compatibilidad con DXGI DDI

Compatibilidad con superposición multiplano

Funciones de Direct3D implementadas por controladores de visualización en modo de usuario

Mejoras en el rendimiento de representación de Direct3D