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 成员设置为内部设备控制请求为并行端口返回的泛型状态值之一或以下值之一:
STATUS_BUFFER_TOO_SMALL
Parameters.DeviceIoControl.InputBufferLength 成员的值小于PARALLEL_1284_COMMAND结构的大小(以字节为单位)。
STATUS_INVALID_PARAMETER
指定的设备未在内部标记为链末设备,并且输入结构的 ID 成员的值大于现有菊花链设备的数量。
要求
要求 | 值 |
---|---|
Header | parallel.h (包括 Parallel.h) |