Compartir a través de


PPARALLEL_TRY_SELECT_ROUTINE función de devolución de llamada (parallel.h)

La rutina de devolución de llamada con tipo PPARALLEL_TRY_SELECT_ROUTINE selecciona un dispositivo de cadena de margarita IEEE 1284.3 o un dispositivo de extremo de cadena IEEE 1284 conectado a un puerto paralelo. El controlador de función proporcionado por el sistema para puertos paralelos proporciona esta rutina.

Sintaxis

PPARALLEL_TRY_SELECT_ROUTINE PparallelTrySelectRoutine;

NTSTATUS PparallelTrySelectRoutine(
  [in] PVOID TrySelectContext,
  [in] PVOID TrySelectCommand
)
{...}

Parámetros

[in] TrySelectContext

Puntero a la extensión del dispositivo de un objeto de dispositivo funcional (FDO) de un puerto paralelo.

[in] TrySelectCommand

Puntero a una estructura de PARALLEL_1284_COMMAND . El autor de la llamada especifica los siguientes miembros:

ID

Especifica el identificador de dispositivo 1284.3.

CommandFlags

Especifica un OR bit a bit de cero o más de las marcas siguientes:

Valor Descripción
PAR_END_OF_CHAIN_DEVICE Especifica un dispositivo de extremo de cadena.
PAR_HAVE_PORT_KEEP_PORT Especifica que el autor de la llamada tiene asignado el puerto y para mantener asignado el puerto.

Valor devuelto

Código devuelto Descripción
STATUS_SUCCESS
Se seleccionó el dispositivo.
STATUS_INVALID_PARAMETER
El identificador de dispositivo no es válido.
STATUS_PENDING
El autor de la llamada no especificó PAR_HAVE_PORT_KEEP_PORT y el puerto paralelo ya está asignado.
STATUS_UNSUCCESSFUL
El autor de la llamada ha asignado el puerto paralelo, pero el controlador de función proporcionado por el sistema para los puertos paralelos no pudo seleccionar el dispositivo paralelo especificado.

Comentarios

Para obtener un puntero a la devolución de llamada proporcionada por el sistema PPARALLEL_TRY_SELECT_ROUTINE, un controlador en modo kernel usa una solicitud de IOCTL_INTERNAL_GET_PARALLEL_PNP_INFO , que devuelve una estructura PARALLEL_PNP_INFORMATION . El miembro TrySelectDevice de la estructura PARALLEL_PNP_INFORMATION es un puntero a esta devolución de llamada.

Un controlador en modo kernel puede usar una solicitud de IOCTL_INTERNAL_SELECT_DEVICE o la devolución de llamada PPARALLEL_TRY_SELECT_ROUTINE para seleccionar un dispositivo paralelo en un puerto paralelo. El controlador de función de puerto paralelo pone en cola una solicitud de selección si el puerto paralelo ya está asignado. Sin embargo, la devolución de llamada PPARALLEL_TRY_SELECT_ROUTINE no pone en cola una solicitud de selección y la rutina devuelve inmediatamente si no se puede asignar el puerto.

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 los 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 en paralelo y, posteriormente, procesan, asignan solicitudes de puerto y seleccionan solicitudes de dispositivo en el orden en que se reciben las solicitudes de dispositivo).
 
Para obtener más información, vea Seleccionar y anular la selección de un dispositivo IEEE 1284 conectado a parallelPort.

Requisitos

Requisito Value
Plataforma de destino Escritorio
Encabezado parallel.h (include Parallel.h)
IRQL <=DISPATCH_LEVEL

Consulte también

PARALLEL_1284_COMMAND

IOCTL_INTERNAL_GET_PARALLEL_PORT_INFO

IOCTL_INTERNAL_SELECT_DEVICE

IOCTL_INTERNAL_DESELECT_DEVICE

PARALLEL_PNP_INFORMATION

PPARALLEL_DESELECT_ROUTINE