IOCTL_INTERNAL_SELECT_DEVICE IOCTL (parallel.h)
IOCTL_INTERNAL_SELECT_DEVICE 请求:
-
分配并行端口
如果客户端未在输入PARALLEL_1284_COMMAND结构 成员的 CommandFlags 中设置PAR_HAVE_PORT_KEEP_PORT标志,则并行端口的系统提供的函数驱动程序分配并行端口。 否则,并行端口函数驱动程序不会分配并行端口。
-
选择附加到并行端口的 IEEE 1284.3 菊链并行设备或链端设备
尽管客户端可以使用选择设备请求选择链端设备,但Microsoft建议改用 IOCTL_INTERNAL_PARALLEL_PORT_ALLOCATE 请求。 并行端口函数驱动程序在将并行端口分配给客户端之前选择链端设备。
有关详细信息,请参阅 选择并取消选择附加到 ParallelPort的 IEEE 1284 设备。
主要代码
IRP_MJ_INTERNAL_DEVICE_CONTROL
输入缓冲区
AssociatedIrp.SystemBuffer 指向客户端分配给输入选择设备信息的 PARALLEL_1284_COMMAND 结构。
输入缓冲区长度
Parameters.DeviceIoControl.InputBufferLength 成员指定PARALLEL_1284_COMMAND结构的大小(以字节为单位)。
输出缓冲区
没有。
输出缓冲区长度
没有。
状态块
信息 成员设置为零。
状态 成员设置为内部设备控制请求针对并行端口或以下值之一返回的泛型状态值之一:
STATUS_BUFFER_TOO_SMALL
Parameters.DeviceIoControl.InputBufferLength 成员的值小于PARALLEL_1284_COMMAND结构的大小(以字节为单位)。
STATUS_INVALID_PARAMETER
指定的设备在内部未标记为链尾设备,并且输入结构的 ID 成员的值大于现有菊花链设备的数量。
要求
要求 | 价值 |
---|---|
标头 | parallel.h (include Parallel.h) |