IOCTL_INTERNAL_SELECT_DEVICE IOCTL (parallel.h)
The IOCTL_INTERNAL_SELECT_DEVICE request:
-
Allocates the parallel port
The system-supplied function driver for parallel ports allocates the parallel port if the client does not set the PAR_HAVE_PORT_KEEP_PORT flag in the CommandFlags member of the input PARALLEL_1284_COMMAND structure. Otherwise, the parallel port function driver does not allocate the parallel port.
-
Selects an IEEE 1284.3 daisy chain parallel device or an end-of-chain device attached to the parallel port
Although a client can select an end-of-chain device using a select device request, Microsoft recommends using an IOCTL_INTERNAL_PARALLEL_PORT_ALLOCATE request instead. The parallel port function driver selects the end-of-chain device before it allocates the parallel port to a client.
For more information, see Selecting and Deselecting an IEEE 1284 Device Attached to a ParallelPort.
Major code
IRP_MJ_INTERNAL_DEVICE_CONTROL
Input buffer
The AssociatedIrp.SystemBuffer points to a PARALLEL_1284_COMMAND structure that the client allocates to input the select device information.
Input buffer length
The Parameters.DeviceIoControl.InputBufferLength member specifies the size, in bytes, of a PARALLEL_1284_COMMAND structure.
Output buffer
None.
Output buffer length
None.
Status block
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
The value of the Parameters.DeviceIoControl.InputBufferLength member is less than the size, in bytes, of a PARALLEL_1284_COMMAND structure.
STATUS_INVALID_PARAMETER
The specified device is not flagged internally as an end-of-chain device and the value of the ID member of the input structure is greater than the number of existing daisy chain devices.
Requirements
Requirement | Value |
---|---|
Header | parallel.h (include Parallel.h) |