IOCTL_INTERNAL_PARALLEL_CONNECT_INTERRUPT IOCTL (parallel.h)

IOCTL_INTERNAL_PARALLEL_CONNECT_INTERRUPT请求将可选的中断服务例程和可选的延迟端口检查例程连接到并行端口。 只有内核模式驱动程序才能使用此请求。

连接中断请求返回驱动程序可以在特定于驱动程序的 ISR 上下文中使用的信息。 该信息包括指向中断对象的指针,以及指向在 IRQL = DIRQL 处分配和释放并行端口的回调例程的指针。

注意 Microsoft 不建议使用客户端提供的中断例程。 使用中断可能会导致系统不稳定。 默认情况下,连接中断请求处于禁用状态。 有关详细信息,请参阅 将中断服务例程连接到 ParallelPort
 

主要代码

IRP_MJ_INTERNAL_DEVICE_CONTROL

输入缓冲区

AssociatedIrp.SystemBuffer 成员指向客户端分配给输入中断服务信息的PARALLEL_INTERRUPT_SERVICE_ROUTINE结构。 系统提供的用于并行端口的函数驱动程序使用相同的内存缓冲区,但将其转换为不同的数据类型以输出信息。

输入缓冲区长度

Parameters.DeviceIoControl.InputBufferLength 成员设置为PARALLEL_INTERRUPT_SERVICE_ROUTINE结构的大小(以字节为单位)。

输出缓冲区

AssociatedIrp.SystemBuffer 成员指向并行端口函数驱动程序用于输出并行中断信息的PARALLEL_INTERRUPT_INFORMATION结构。

输出缓冲区长度

Parameters.DeviceIoControl.OutputBufferLength 成员设置为PARALLEL_INTERRUPT_INFORMATION结构的大小(以字节为单位)。

状态块

如果请求成功, 则信息 成员设置为 PARALLEL_INTERRUPT_INFORMATION 结构的大小(以字节为单位)。 否则, 信息 成员设置为零。

Status 成员设置为并行端口的内部设备控制请求返回的泛型状态值之一或以下值之一:

STATUS_BUFFER_TOO_SMALL

以下至少一个条件成立:

Parameters.DeviceIoControl.InputBufferLength 成员的值小于PARALLEL_INTERRUPT_SERVICE_ROUTINE结构的大小(以字节为单位)。

Parameters.DeviceIoControl.OuputBufferLength 成员的值小于PARALLEL_INTERRUPT_INFORMATION结构的大小(以字节为单位)。

要求

要求
Header parallel.h (包括 Parallel.h)

另请参阅

PARALLEL_INTERRUPT_SERVICE_ROUTINE

IOCTL_INTERNAL_PARALLEL_DISCONNECT_INTERRUPT

PARALLEL_INTERRUPT_INFORMATION