• 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


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


Output buffer length


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:


The value of the Parameters.DeviceIoControl.InputBufferLength member is less than the size, in bytes, of a PARALLEL_1284_COMMAND structure.


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.


Requirement Value
Header parallel.h (include Parallel.h)

See also