IOCTL_IEEE1284_NEGOTIATE - NtDoc

Native API online documentation, based on the System Informer (formerly Process Hacker) phnt headers
// ntddpar.h

// CTL_CODE(0x0016, 0x006, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_IEEE1284_NEGOTIATE 0x00160018
View the official Windows Driver Kit DDI reference

NtDoc

No description available.

Windows Driver Kit DDI reference (ni-ntddpar-ioctl_ieee1284_negotiate)

IOCTL_IEEE1284_NEGOTIATE IOCTL

Major Code:

IRP_MJ_DEVICE_CONTROL

Description

The IOCTL_IEEE1284_NEGOTIATE request sets the read and write protocols that are used for a parallel device. This request requires that the parallel port, to which the parallel device is attached, be locked and the parallel device be selected. The system-supplied bus driver for parallel ports negotiates with the parallel device to determine the fastest modes that are supported by both the host chipset and the parallel device from among the modes that are specified by the client. The parallel port bus driver sets the default read and write modes to the negotiated modes.

For more information, see Setting and Clearing a Communication Mode for a Parallel Device.

Parameters

Major code

Input buffer

The AssociatedIrp.SystemBuffer member points to a PARCLASS_NEGOTIATION_MASK structure that the client allocates for the input and output of mode information. The client sets the usReadMask and usWriteMask members.

Input buffer length

The Parameters.DeviceIoControl.InputBufferLength member is set to the size, in bytes, of a PARCLASS_NEGOTIATION_MASK structure.

Output buffer

The AssociatedIrp.SystemBuffer points to the PARCLASS_NEGOTIATION_MASK structure that the system-supplied bus driver for parallel ports uses to output mode information. The parallel port bus driver sets the usReadMask and usWriteMask members to the negotiated modes.

Output buffer length

The length of a PARCLASS_NEGOTIATION_MASK structure.

Input/output buffer

Input/output buffer length

Status block

If request is successful, the Information member is set to the size, in bytes, of a PARCLASS_NEGOTIATION_MASK structure. Otherwise the Information member is set to zero.

The Status member is set to one of the generic status values returned by device control requests for parallel devices or to the following value:

STATUS_INVALID_PARAMETER

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

See also

PARCLASS_NEGOTIATION_MASK

IOCTL_PAR_GET_DEVICE_CAPS

IOCTL_PAR_GET_DEFAULT_MODES

IOCTL_IEEE1284_GET_MODE