Selección y deselección de un dispositivo IEEE 1284 conectado a un puerto paralelo
Un cliente puede seleccionar y anular la selección de un dispositivo IEEE 1284.3 conectado a un puerto paralelo mediante las siguientes solicitudes de control de dispositivos internos:
IOCTL_INTERNAL_DESELECT_DEVICE
Un controlador en modo kernel también puede usar las rutinas de devolución de llamada del dispositivo paralelo proporcionadas por el sistema que se obtienen mediante una solicitud de IOCTL_INTERNAL_GET_PARALLEL_PNP_INFO . Esta solicitud devuelve una estructura de PARALLEL_PNP_INFORMATION que incluye los siguientes punteros a las devoluciones de llamada proporcionadas por el sistema:
El miembro TrySelectDevice es un puntero a una devolución de llamada de PPARALLEL_TRY_SELECT_ROUTINE , que anula la selección de un dispositivo de cadena de margarita IEEE 1284.3 o un dispositivo de extremo de cadena IEEE 1284 que está conectado a un puerto paralelo.
El miembro DeselectDevice es un puntero a una devolución de llamada de PPARALLEL_DESELECT_ROUTINE , que selecciona un dispositivo de cadena de margarita IEEE 1284.3 o un dispositivo de extremo de cadena IEEE 1284 que está conectado a un puerto paralelo.
Las solicitudes de selección requieren el menor control por parte del cliente porque el controlador de funciones proporcionado por el sistema para puertos paralelos pone en cola la solicitud de selección para el cliente si otro cliente asigna el puerto paralelo. Después de poner en cola la solicitud de selección del controlador de función de puerto paralelo, intenta asignar el puerto y seleccionar el dispositivo IEEE 1284.3. El cliente puede cancelar una solicitud de selección en cualquier momento debido a un retraso de tiempo de espera aceptable o a alguna otra condición específica del dispositivo.
Nota Si un cliente usa solo la devolución de llamada de PPARALLEL_TRY_SELECT_ROUTINE para intentar seleccionar un dispositivo paralelo y otros clientes compiten por el puerto paralelo, es posible que el controlador de función proporcionado por el sistema para puertos paralelos nunca asigne el puerto al cliente. Para garantizar el éxito, un cliente debe usar una solicitud de IOCTL_INTERNAL_SELECT_DEVICE . (Las colas del controlador de funciones de puerto paralelas y, posteriormente, los procesos, las solicitudes de asignación de puertos y las solicitudes de selección de dispositivo en el orden en que se reciben las solicitudes de dispositivo).
Después de seleccionar un dispositivo IEEE 1284.3 para un cliente, el cliente tiene acceso exclusivo al puerto y al dispositivo IEEE 1284.3 seleccionado. El cliente debe llamar a la devolución de llamada PPARALLEL_DESELECT_ROUTINE para liberar el puerto y anular la selección del dispositivo IEEE 1284.3. Después de que un cliente libere el puerto, el controlador de función de puerto paralelo quita una solicitud pendiente, si existe, y procesa la solicitud.
Microsoft Windows 2000 admite cuatro dispositivos de cadena de margarita por puerto; Sin embargo, Microsoft recomienda usar como máximo dos dispositivos de cadena de margarita por puerto. Windows XP admite como máximo dos dispositivos de cadena de margarita por puerto.