并行端口

并行端口技术概述。

若要开发并行端口,需要以下标头:

有关编程指南,请参阅 并行端口

I/O 控制代码

标题 说明
IOCTL_IEEE1284_GET_MODE IOCTL IOCTL_IEEE1284_GET_MODE请求返回当前为并行设备设置的 IEEE 1284 读写协议。
IOCTL_IEEE1284_NEGOTIATE IOCTL IOCTL_IEEE1284_NEGOTIATE请求设置用于并行设备的读取和写入协议。
IOCTL_INTERNAL_DESELECT_DEVICE IOCTL IOCTL_INTERNAL_DESELECT_DEVICE请求取消选择连接到并行端口的 IEEE 1284.3 菊花链设备或 IEEE 1284 链尾设备。
IOCTL_INTERNAL_DISCONNECT_IDLE IOCTL IOCTL_INTERNAL_DISCONNECT_IDLE请求断开为并行设备设置的 IEEE 1284 操作模式的连接。
IOCTL_INTERNAL_GET_MORE_PARALLEL_PORT_INFO IOCTL IOCTL_INTERNAL_GET_MORE_PARALLEL_PORT_INFO请求返回有关并行端口的信息。
IOCTL_INTERNAL_GET_PARALLEL_PNP_INFO IOCTL IOCTL_INTERNAL_GET_PARALLEL_PNP_INFO请求返回有关并行端口的即插即用信息。
IOCTL_INTERNAL_GET_PARALLEL_PORT_INFO IOCTL IOCTL_INTERNAL_GET_PARALLEL_PORT_INFO请求返回有关并行端口的信息。
IOCTL_INTERNAL_INIT_1284_3_BUS IOCTL IOCTL_INTERNAL_INIT_1284_3_BUS请求初始化 IEEE 1284.3 设备 ID 并将其分配给连接到并行端口的所有 1284.3 菊花链设备。
IOCTL_INTERNAL_LOCK_PORT IOCTL IOCTL_INTERNAL_LOCK_PORT请求分配并行设备的父并行端口,并选择端口上的并行设备。
IOCTL_INTERNAL_LOCK_PORT_NO_SELECT IOCTL IOCTL_INTERNAL_LOCK_PORT_NO_SELECT请求分配并行设备的父并行端口,但不选择并行设备。
IOCTL_INTERNAL_PARALLEL_CLEAR_CHIP_MODE IOCTL IOCTL_INTERNAL_PARALLEL_CLEAR_CHIP_MODE请求清除并行端口的操作模式。
IOCTL_INTERNAL_PARALLEL_CONNECT_INTERRUPT IOCTL IOCTL_INTERNAL_PARALLEL_CONNECT_INTERRUPT请求将可选的中断服务例程和可选的延迟端口检查例程连接到并行端口。
IOCTL_INTERNAL_PARALLEL_DISCONNECT_INTERRUPT IOCTL IOCTL_INTERNAL_PARALLEL_DISCONNECT_INTERRUPT请求断开中断服务例程 (以及通过使用IOCTL_INTERNAL_PARALLEL_CONNECT_INTERRUPT请求连接的可选延迟端口检查服务例程) 。
IOCTL_INTERNAL_PARALLEL_PORT_ALLOCATE IOCTL IOCTL_INTERNAL_PARALLEL_PORT_ALLOCATE请求分配一个并行端口供客户端进行独占访问。
IOCTL_INTERNAL_PARALLEL_PORT_FREE IOCTL IOCTL_INTERNAL_PARALLEL_PORT_FREE请求释放并行端口。
IOCTL_INTERNAL_PARALLEL_SET_CHIP_MODE IOCTL IOCTL_INTERNAL_PARALLEL_SET_CHIP_MODE请求设置并行端口的操作模式。
IOCTL_INTERNAL_PARCLASS_CONNECT IOCTL IOCTL_INTERNAL_PARCLASS_CONNECT请求返回有关并行端口的信息,以及系统提供的并行端口总线驱动程序提供的用于运行并行端口的回调例程。
IOCTL_INTERNAL_PARCLASS_DISCONNECT IOCTL IOCTL_INTERNAL_PARCLASS_DISCONNECT请求断开客户端与并行设备的连接。
IOCTL_INTERNAL_RELEASE_PARALLEL_PORT_INFO IOCTL IOCTL_INTERNAL_RELEASE_PARALLEL_PORT_INFO请求返回STATUS_SUCCESS。
IOCTL_INTERNAL_SELECT_DEVICE IOCTL IOCTL_INTERNAL_SELECT_DEVICE请求
IOCTL_INTERNAL_UNLOCK_PORT IOCTL IOCTL_INTERNAL_UNLOCK_PORT请求取消选择并行设备,并释放并行设备的父并行端口。
IOCTL_INTERNAL_UNLOCK_PORT_NO_DESELECT IOCTL IOCTL_INTERNAL_UNLOCK_PORT_NO_DESELECT请求释放并行设备的父并行端口。
IOCTL_PAR_GET_DEFAULT_MODES IOCTL IOCTL_PAR_GET_DEFAULT_MODES请求返回系统提供的用于并行端口的总线驱动程序使用的默认写入 (向前) 和读取 (反向) IEEE 1284 协议。
IOCTL_PAR_GET_DEVICE_CAPS IOCTL IOCTL_PAR_GET_DEVICE_CAPS请求执行以下操作
IOCTL_PAR_IS_PORT_FREE IOCTL IOCTL_PAR_IS_PORT_FREE请求确定在系统提供的并行端口总线驱动程序处理请求时,并行设备的父并行端口是否可用。
IOCTL_PAR_QUERY_DEVICE_ID IOCTL IOCTL_PAR_QUERY_DEVICE_ID请求返回由系统提供的函数驱动程序为并行端口分配的并行设备的 IEEE 1284 设备 ID。
IOCTL_PAR_QUERY_DEVICE_ID_SIZE IOCTL IOCTL_PAR_QUERY_DEVICE_ID_SIZE请求返回可以保存设备的 IEEE 1284 设备 ID 和 NULL 终止符的缓冲区的大小(以字节为单位)。
IOCTL_PAR_QUERY_INFORMATION IOCTL IOCTL_PAR_QUERY_INFORMATION请求返回 IEEE 1284 链末设备的状态。
IOCTL_PAR_QUERY_LOCATION IOCTL IOCTL_PAR_QUERY_LOCATION请求返回与并行设备关联的“LPTn”或“LPTn.m”符号链接名称。
IOCTL_PAR_QUERY_RAW_DEVICE_ID IOCTL IOCTL_PAR_QUERY_RAW_DEVICE_ID请求返回原始设备 ID,其中包括以下内容
IOCTL_PAR_SET_INFORMATION IOCTL IOCTL_PAR_SET_INFORMATION请求重置并初始化并行设备。
IOCTL_PAR_SET_READ_ADDRESS IOCTL IOCTL_PAR_SET_READ_ADDRESS请求为并行设备设置扩展功能端口 (ECP) 或增强的并行端口 (EPP) 读取地址 (通道) 。
IOCTL_PAR_SET_WRITE_ADDRESS IOCTL IOCTL_PAR_SET_WRITE_ADDRESS请求为并行设备设置扩展功能端口 (ECP) 或增强的并行端口 (EPP) 写入地址 (通道) 。 并行端口总线驱动程序将此请求排在并行设备的工作队列中。

IOCTL

 
IOCTL_IEEE1284_GET_MODE

IOCTL_IEEE1284_GET_MODE请求返回当前为并行设备设置的 IEEE 1284 读写协议。
IOCTL_IEEE1284_NEGOTIATE

IOCTL_IEEE1284_NEGOTIATE请求设置用于并行设备的读取和写入协议。
IOCTL_INTERNAL_DESELECT_DEVICE

IOCTL_INTERNAL_DESELECT_DEVICE请求取消选择连接到并行端口的 IEEE 1284.3 菊花链设备或 IEEE 1284 链尾设备。
IOCTL_INTERNAL_DISCONNECT_IDLE

IOCTL_INTERNAL_DISCONNECT_IDLE请求断开为并行设备设置的 IEEE 1284 操作模式的连接。
IOCTL_INTERNAL_GET_MORE_PARALLEL_PORT_INFO

IOCTL_INTERNAL_GET_MORE_PARALLEL_PORT_INFO请求返回有关并行端口的信息。
IOCTL_INTERNAL_GET_PARALLEL_PNP_INFO

IOCTL_INTERNAL_GET_PARALLEL_PNP_INFO请求返回有关并行端口的即插即用信息。
IOCTL_INTERNAL_GET_PARALLEL_PORT_INFO

IOCTL_INTERNAL_GET_PARALLEL_PORT_INFO请求返回有关并行端口的信息。
IOCTL_INTERNAL_INIT_1284_3_BUS

IOCTL_INTERNAL_INIT_1284_3_BUS请求初始化 IEEE 1284.3 设备 ID 并将其分配给连接到并行端口的所有 1284.3 菊花链设备。
IOCTL_INTERNAL_LOCK_PORT

IOCTL_INTERNAL_LOCK_PORT请求分配并行设备的父并行端口,并选择端口上的并行设备。
IOCTL_INTERNAL_LOCK_PORT_NO_SELECT

IOCTL_INTERNAL_LOCK_PORT_NO_SELECT请求分配并行设备的父并行端口,但不选择并行设备。
IOCTL_INTERNAL_PARALLEL_CLEAR_CHIP_MODE

IOCTL_INTERNAL_PARALLEL_CLEAR_CHIP_MODE请求清除并行端口的操作模式。
IOCTL_INTERNAL_PARALLEL_CONNECT_INTERRUPT

IOCTL_INTERNAL_PARALLEL_CONNECT_INTERRUPT请求将可选的中断服务例程和可选的延迟端口检查例程连接到并行端口。
IOCTL_INTERNAL_PARALLEL_DISCONNECT_INTERRUPT

IOCTL_INTERNAL_PARALLEL_DISCONNECT_INTERRUPT请求断开中断服务例程 (以及通过使用IOCTL_INTERNAL_PARALLEL_CONNECT_INTERRUPT请求连接的可选延迟端口检查服务例程) 。
IOCTL_INTERNAL_PARALLEL_PORT_ALLOCATE

IOCTL_INTERNAL_PARALLEL_PORT_ALLOCATE请求分配一个并行端口供客户端独占访问。
IOCTL_INTERNAL_PARALLEL_PORT_FREE

IOCTL_INTERNAL_PARALLEL_PORT_FREE请求释放并行端口。
IOCTL_INTERNAL_PARALLEL_SET_CHIP_MODE

IOCTL_INTERNAL_PARALLEL_SET_CHIP_MODE请求设置并行端口的操作模式。
IOCTL_INTERNAL_PARCLASS_CONNECT

IOCTL_INTERNAL_PARCLASS_CONNECT请求返回有关并行端口的信息,以及并行端口的系统提供的总线驱动程序为操作并行端口而提供的回调例程。
IOCTL_INTERNAL_PARCLASS_DISCONNECT

IOCTL_INTERNAL_PARCLASS_DISCONNECT请求将客户端与并行设备断开连接。
IOCTL_INTERNAL_RELEASE_PARALLEL_PORT_INFO

IOCTL_INTERNAL_RELEASE_PARALLEL_PORT_INFO请求返回STATUS_SUCCESS。
IOCTL_INTERNAL_SELECT_DEVICE

IOCTL_INTERNAL_SELECT_DEVICE请求:分配并行端口如果客户端未在输入PARALLEL_1284_COMMAND结构的 CommandFlags 成员中设置PAR_HAVE_PORT_KEEP_PORT标志,则并行端口的系统提供的函数驱动程序分配并行端口。 否则,并行端口函数驱动程序不会分配并行端口。选择 IEEE 1284.3 菊花链并行设备或附加到并行端口的链末设备尽管客户端可以使用所选设备请求选择链末设备,但 Microsoft 建议改用IOCTL_INTERNAL_PARALLEL_PORT_ALLOCATE请求。 并行端口函数驱动程序在将并行端口分配给客户端之前选择链末设备。
IOCTL_INTERNAL_UNLOCK_PORT

IOCTL_INTERNAL_UNLOCK_PORT请求取消选择并行设备,并释放并行设备的父并行端口。
IOCTL_INTERNAL_UNLOCK_PORT_NO_DESELECT

IOCTL_INTERNAL_UNLOCK_PORT_NO_DESELECT请求释放并行设备的父并行端口。
IOCTL_PAR_GET_DEFAULT_MODES

IOCTL_PAR_GET_DEFAULT_MODES请求返回默认写入 (前向) ,并读取 (反向) IEEE 1284 协议,供并行端口的系统提供的总线驱动程序使用。
IOCTL_PAR_GET_DEVICE_CAPS

IOCTL_PAR_GET_DEVICE_CAPS请求执行以下操作:指定系统提供的并行端口的总线驱动程序不能与并行设备一起使用的协议返回并行设备支持的操作协议有关详细信息,请参阅为并行设备设置和清除通信模式。
IOCTL_PAR_IS_PORT_FREE

IOCTL_PAR_IS_PORT_FREE请求确定在并行端口的系统提供的总线驱动程序处理请求时,并行设备的父并行端口是否可用。
IOCTL_PAR_QUERY_DEVICE_ID

IOCTL_PAR_QUERY_DEVICE_ID请求返回由系统提供的函数驱动程序为并行端口分配的并行设备的 IEEE 1284 设备 ID。
IOCTL_PAR_QUERY_DEVICE_ID_SIZE

IOCTL_PAR_QUERY_DEVICE_ID_SIZE请求返回可以保存设备的 IEEE 1284 设备 ID 和 NULL 终止符的缓冲区的大小(以字节为单位)。
IOCTL_PAR_QUERY_INFORMATION

IOCTL_PAR_QUERY_INFORMATION请求返回 IEEE 1284 链末设备的状态。
IOCTL_PAR_QUERY_LOCATION

IOCTL_PAR_QUERY_LOCATION请求返回与并行设备关联的“LPTn”或“LPTn.m”符号链接名称。
IOCTL_PAR_QUERY_RAW_DEVICE_ID

IOCTL_PAR_QUERY_RAW_DEVICE_ID请求返回原始设备 ID,其中包括以下内容:_a两字节前缀,用于指定设备的 IEEE 1284 设备 ID 的大小(以字节为单位);IEEE 1284 设备 ID;和 NULL 终止符。
IOCTL_PAR_SET_INFORMATION

IOCTL_PAR_SET_INFORMATION请求重置并初始化并行设备。
IOCTL_PAR_SET_READ_ADDRESS

IOCTL_PAR_SET_READ_ADDRESS请求为并行设备设置扩展功能端口 (ECP) 或增强的并行端口 (EPP) 读取地址 (通道) 。
IOCTL_PAR_SET_WRITE_ADDRESS

IOCTL_PAR_SET_WRITE_ADDRESS请求为并行设备设置扩展功能端口 (ECP) 或增强的并行端口 (EPP) 写入地址 (通道) 。 并行端口总线驱动程序将此请求排在并行设备的工作队列中。

函数

 
PDETERMINE_IEEE_MODES

PDETERMINE_IEEE_MODES类型的回调例程确定并行设备支持的 IEEE 1284 协议。 并行端口的系统提供的总线驱动程序提供此例程。
PNEGOTIATE_IEEE_MODE

PNEGOTIATE_IEEE_MODE类型的回调例程从调用方指定的协议中选择系统提供的用于并行端口的总线驱动程序支持的最快正向和反向协议。
PPARALLEL_CLEAR_CHIP_MODE

PPARALLEL_CLEAR_CHIP_MODE类型的回调例程通过将主机芯片集的通信模式重置为 IEEE 1284 兼容模式来清除并行端口的操作模式。
PPARALLEL_DESELECT_ROUTINE

PPARALLEL_DESELECT_ROUTINE类型的回调例程取消选择连接到并行端口的 IEEE 1284.3 菊花链设备或 IEEE 1284 链末设备。
PPARALLEL_FREE_ROUTINE

PPARALLEL_FREE_ROUTINE类型的回调例程释放并行端口。 并行端口的系统提供的函数驱动程序提供此例程。
PPARALLEL_IEEE_FWD_TO_REV

PPARALLEL_IEEE_FWD_TO_REV类型的回调例程将传输模式从正向更改为反向。 并行端口的系统提供的总线驱动程序提供此例程。
PPARALLEL_IEEE_REV_TO_FWD

PPARALLEL_IEEE_REV_TO_FWD类型的回调例程将传输模式从反向更改为转发。 并行端口的系统提供的总线驱动程序提供此例程。
PPARALLEL_QUERY_WAITERS_ROUTINE

PPARALLEL_QUERY_WAITERS_ROUTINE类型的回调例程返回在并行端口的工作队列上排队的IOCTL_INTERNAL_PARALLEL_PORT_ALLOCATE和IOCTL_INTERNAL_SELECT_DEVICE请求数。
PPARALLEL_READ

PPARALLEL_READ类型的回调例程从并行设备读取数据。 并行端口的系统提供的总线驱动程序提供此例程。
PPARALLEL_SET_CHIP_MODE

PPARALLEL_SET_CHIP_MODE类型的回调例程设置并行端口的操作模式。 并行端口的系统提供的函数驱动程序提供此例程。
PPARALLEL_TRY_ALLOCATE_ROUTINE

PPARALLEL_TRY_ALLOCATE_ROUTINE类型的 (ISR) 回调例程尝试在 IRQL = DIRQL 分配并行端口。 并行端口的系统提供的函数驱动程序提供此例程。
PPARALLEL_TRY_SELECT_ROUTINE

PPARALLEL_TRY_SELECT_ROUTINE类型的回调例程选择连接到并行端口的 IEEE 1284.3 菊花链设备或 IEEE 1284 链尾设备。 并行端口的系统提供的函数驱动程序提供此例程。
PPARALLEL_WRITE

PPARALLEL_WRITE类型的回调例程将数据写入并行设备。 并行端口的系统提供的总线驱动程序提供此例程。
PTERMINATE_IEEE_MODE

PTERMINATE_IEEE_MODE类型的回调例程终止当前 IEEE 操作模式,并将该模式设置为 IEEE 1284 兼容。 并行端口的系统提供的总线驱动程序提供此例程。

结构

 
MORE_PARALLEL_PORT_INFORMATION

MORE_PARALLEL_PORT_INFORMATION 结构指定有关支持并行端口操作的系统接口的信息。
PAR_DEVICE_ID_SIZE_INFORMATION

PAR_DEVICE_ID_SIZE_INFORMATION结构指定可以保存并行设备的 IEEE 1284 设备 ID 和 NULL 终止符的缓冲区的大小(以字节为单位)。
PAR_QUERY_INFORMATION

PAR_QUERY_INFORMATION结构指定并行端口的操作状态。
PAR_SET_INFORMATION

PAR_SET_INFORMATION 结构指定并行端口的初始运行状态。
PARALLEL_1284_COMMAND

PARALLEL_1284_COMMAND结构指定客户端用于选择和取消选择 IEEE 1284.3 菊花链设备或 IEEE 1284 链末设备的信息。
PARALLEL_CHIP_MODE

PARALLEL_CHIP_MODE 结构指定并行端口的操作模式。
PARALLEL_INTERRUPT_INFORMATION

PARALLEL_INTERRUPT_INFORMATION 结构指定内核模式驱动程序可以在驱动程序连接到并行端口的 ISR 上下文中使用的信息。
PARALLEL_INTERRUPT_SERVICE_ROUTINE

PARALLEL_INTERRUPT_SERVICE_ROUTINE 结构指定内核模式驱动程序可以连接到并行端口操作的中断服务。
PARALLEL_PNP_INFORMATION

PARALLEL_PNP_INFORMATION结构指定有关并行端口功能的信息。
PARALLEL_PORT_INFORMATION

PARALLEL_PORT_INFORMATION 结构指定有关分配给并行端口的资源、并行端口的功能以及指向内核模式驱动程序可用于操作并行端口的回调例程的指针的信息。
PARCLASS_INFORMATION

PARCLASS_INFORMATION 结构指定有关并行端口的信息、指向回调例程以操作并行端口的指针,以及指向回调例程的指针,以便读取和写入并行设备。
PARCLASS_NEGOTIATION_MASK

PARCLASS_NEGOTIATION_MASK 结构指定驱动程序为并行设备选择的读取和写入协议。