Introducción a los destinos de E/S

En los temas de esta sección se describe cómo un controlador de Windows Driver Frameworks (WDF) puede reenviar una solicitud de E/S o crear y enviar una nueva solicitud a otro controlador, denominado destino de E/S.

Cuando un controlador de función, un controlador de filtro o un controlador de minipuerto recibe una solicitud de E/S, es posible que el controlador pueda procesar la solicitud por sí mismo o que necesite la ayuda de otros controladores. Si el controlador necesita asistencia, puede reenviar la solicitud a otro controlador, o puede crear una o varias solicitudes nuevas y enviarlas a otro controlador.

En Kernel-Mode Driver Framework, un destino de E/S representa un objeto de dispositivo que es el destino de una solicitud de E/S. Una función, filtro o controlador de minipuerto puede usar un destino de E/S para enviar solicitudes de E/S a otro controlador. Estos controladores suelen enviar sus solicitudes de E/S al siguiente controlador inferior de la pila de controladores. Por lo tanto, cada función, filtro y controlador de minipuerto basado en marcos tiene un destino de E/S local para cada dispositivo, que es el controlador inferior del dispositivo.

En ocasiones, un controlador debe enviar una solicitud de E/S a un destino diferente: la parte superior de una pila de controladores diferente o, rara vez, algún otro controlador dentro de la pila del controlador de envío. Por lo tanto, el marco también proporciona destinos de E/S remotos, que constan de todos los destinos de E/S excepto el destino de E/S local.

Cada destino de E/S se representa mediante un objeto de destino de E/S. Cada objeto de destino de E/S es principalmente una cola que controla cuándo se entrega una solicitud al objeto de dispositivo de destino. Cuando un controlador envía una solicitud a un destino de E/S, el marco almacena la solicitud en la cola hasta que pueda entregar la solicitud al objeto de dispositivo de destino.

El marco admite destinos de E/S generales y destinos de E/S especializados:

  • Todos los controladores de función, filtro y miniporte pueden usar destinos de E/S generales, pero no admiten ningún formato de datos especial específico del dispositivo.

  • Los destinos de E/S especializados permiten que los controladores de función, filtro y miniporte envíen fácilmente solicitudes de E/S que requieran un formato de datos especial específico del destino. Actualmente, el marco proporciona compatibilidad con los siguientes destinos de E/S especializados:

Si el marco proporciona destinos de E/S especializados que admiten el formato de datos del dispositivo, el controlador debe usar los destinos de E/S especializados. De lo contrario, el controlador debe usar destinos de E/S generales.