IOCTL_INTERNAL_PARALLEL_CONNECT_INTERRUPT IOCTL (parallel.h)
La solicitud IOCTL_INTERNAL_PARALLEL_CONNECT_INTERRUPT conecta una rutina de servicio de interrupción opcional y una comprobación de puerto diferida rutina 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.SystemBu ffer apunta a una estructura de PARALLEL_INTERRUPT_SERVICE_ROUTINE que el cliente asigna a la información del servicio de interrupción de entrada. El controlador de funciones proporcionado por el sistema para puertos paralelos usa el mismo búfer de memoria, pero lo convierte en otro tipo de datos 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 de 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 de PARALLEL_INTERRUPT_INFORMATION. De lo contrario, el miembro de Information está establecido 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 siguientes valores:
STATUS_BUFFER_TOO_SMALL
Al menos uno de los siguientes valores es true:
El valor del miembro Parameters.DeviceIoControl.InputBufferLength es menor que el tamaño, en bytes, de una estructura 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 |
---|---|
encabezado de | parallel.h (include Parallel.h) |
Consulte también
PARALLEL_INTERRUPT_SERVICE_ROUTINE