IOCTL_INTERNAL_PARALLEL_CONNECT_INTERRUPT IOCTL (parallel.h)
La solicitud de IOCTL_INTERNAL_PARALLEL_CONNECT_INTERRUPT conecta una rutina de servicio de interrupción opcional y una rutina de comprobación de puerto diferida opcional a un puerto paralelo. Solo los controladores en modo kernel pueden usar esta solicitud.
La solicitud de interrupción de conexión devuelve información que el controlador puede usar en el contexto de un ISR específico del controlador. La información incluye un puntero al objeto de interrupción y punteros para las rutinas de devolución de llamada que asignan y liberan el puerto paralelo en IRQL = DIRQL.
Código principal
IRP_MJ_INTERNAL_DEVICE_CONTROL
Búfer de entrada
El miembro AssociatedIrp.SystemBuffer apunta a una estructura de PARALLEL_INTERRUPT_SERVICE_ROUTINE que el cliente asigna a la información de servicio de interrupción de entrada. El controlador de función proporcionado por el sistema para puertos paralelos usa el mismo búfer de memoria, pero lo convierte en un tipo de datos diferente para generar información.
Longitud del búfer de entrada
El miembro Parameters.DeviceIoControl.InputBufferLength se establece en el tamaño, en bytes, de una estructura de PARALLEL_INTERRUPT_SERVICE_ROUTINE.
Búfer de salida
El miembro AssociatedIrp.SystemBuffer apunta a una estructura de PARALLEL_INTERRUPT_INFORMATION que usa el controlador de función de puerto paralelo para generar información de interrupción paralela.
Longitud del búfer de salida
El miembro Parameters.DeviceIoControl.OutputBufferLength se establece en el tamaño, en bytes, de una estructura PARALLEL_INTERRUPT_INFORMATION .
Bloque de estado
Si la solicitud se realiza correctamente, el miembro Information se establece en el tamaño, en bytes, de una estructura PARALLEL_INTERRUPT_INFORMATION . De lo contrario, el miembro Information se establece en cero.
El miembro Status se establece en uno de los valores de estado genéricos devueltos por las solicitudes de control de dispositivos internos para puertos paralelos o en uno de los valores siguientes:
STATUS_BUFFER_TOO_SMALL
Se cumple al menos una de las siguientes condiciones:
El valor del miembro Parameters.DeviceIoControl.InputBufferLength es menor que el tamaño, en bytes, de una estructura de PARALLEL_INTERRUPT_SERVICE_ROUTINE.
El valor del miembro Parameters.DeviceIoControl.OuputBufferLength es menor que el tamaño, en bytes, de una estructura de PARALLEL_INTERRUPT_INFORMATION.
Requisitos
Requisito | Valor |
---|---|
Header | parallel.h (include Parallel.h) |
Consulte también
PARALLEL_INTERRUPT_SERVICE_ROUTINE