IOCTL_INTERNAL_PARALLEL_CONNECT_INTERRUPT IOCTL (parallel.h)

The IOCTL_INTERNAL_PARALLEL_CONNECT_INTERRUPT request connects an optional interrupt service routine and an optional deferred port check routine to a parallel port. Only kernel-mode drivers can use this request.

The connect interrupt request returns information that the driver can use in the context of a driver-specific ISR. The information includes a pointer to the interrupt object and pointers to callback routines that allocate and free the parallel port at IRQL = DIRQL.

Note   Microsoft does not recommend using a client-supplied interrupt routine. The use of interrupts might cause system instability. By default, the connect interrupt request is disabled. For more information, see Connecting an Interrupt Service Routine to a ParallelPort.
 

Major code

IRP_MJ_INTERNAL_DEVICE_CONTROL

Input buffer

The AssociatedIrp.SystemBuffer member points to a PARALLEL_INTERRUPT_SERVICE_ROUTINE structure that the client allocates to input interrupt service information. The system-supplied function driver for parallel ports uses the same memory buffer, but casts it to a different data type to output information.

Input buffer length

The Parameters.DeviceIoControl.InputBufferLength member is set to the size, in bytes, of a PARALLEL_INTERRUPT_SERVICE_ROUTINE structure.

Output buffer

The AssociatedIrp.SystemBuffer member points to a PARALLEL_INTERRUPT_INFORMATION structure that the parallel port function driver uses to output parallel interrupt information.

Output buffer length

The Parameters.DeviceIoControl.OutputBufferLength member is set to the size, in bytes, of a PARALLEL_INTERRUPT_INFORMATION structure.

Status block

If the request is successful, the Information member is set to the size, in bytes, of a PARALLEL_INTERRUPT_INFORMATION structure. Otherwise, the Information member is set to zero.

The Status member is set to one of the generic status values returned by internal device control requests for parallel ports or to one of the following values:

STATUS_BUFFER_TOO_SMALL

At least one of the following is true:

The value of the Parameters.DeviceIoControl.InputBufferLength member is less than the size, in bytes, of a PARALLEL_INTERRUPT_SERVICE_ROUTINE structure.

The value of the Parameters.DeviceIoControl.OuputBufferLength member is less than the size, in bytes, of a PARALLEL_INTERRUPT_INFORMATION structure.

Requirements

Requirement Value
Header parallel.h (include Parallel.h)

See also

PARALLEL_INTERRUPT_SERVICE_ROUTINE

IOCTL_INTERNAL_PARALLEL_DISCONNECT_INTERRUPT

PARALLEL_INTERRUPT_INFORMATION