PNEGOTIATE_IEEE_MODE - NtDoc

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

PNEGOTIATE_IEEE_MODE PnegotiateIeeeMode;

NTSTATUS PnegotiateIeeeMode(
  [in] PVOID Extension,
  [in] UCHAR Extensibility
)
{...}
View the official Windows Driver Kit DDI reference
// parallel.h

PNEGOTIATE_IEEE_MODE PnegotiateIeeeMode;

NTSTATUS PnegotiateIeeeMode(
  [in] PVOID Context,
  [in] USHORT ModeMaskFwd,
  [in] USHORT ModeMaskRev,
  [in] PARALLEL_SAFETY ModeSafety,
  [in] BOOLEAN IsForward
)
{...}
View the official Windows Driver Kit DDI reference

NtDoc

No description available.

Windows Driver Kit DDI reference (nc-parallel-pnegotiate_ieee_mode)

PNEGOTIATE_IEEE_MODE callback

Description

The old version of the PNEGOTIATE_IEEE_MODE callback function. For the latest version, see the PNEGOTIATE_IEEE_MODE (new) callback function.

Parameters

Extension [in]

Pointer to the device extension of the parallel port device.

Extensibility [in]

Specifies the IEEE 1284 extensibility mode to negotiate. This is a UCHAR value that indicates the specific parallel port communication mode to establish.

Return value

Returns an NTSTATUS value. Possible return values include:

Return code Description
STATUS_SUCCESS The IEEE mode was successfully negotiated.
STATUS_UNSUCCESSFUL The mode negotiation failed.
STATUS_INVALID_PARAMETER An invalid extensibility mode was specified.
STATUS_DEVICE_NOT_READY The parallel port device is not ready for mode negotiation.

Remarks

See also


Windows Driver Kit DDI reference (nc-parallel-pnegotiate_ieee_mode~r1)

Description

The PNEGOTIATE_IEEE_MODE-typed callback routine selects the fastest forward and reverse protocols that the system-supplied bus driver for parallel ports supports from among those specified by the caller. The system-supplied bus driver for parallel ports supplies this routine.

Parameters

Context [in]

Pointer to the device extension of a parallel device's physical device object (PDO).

ModeMaskFwd [in]

Specifies the forward protocols. ModeMaskFwd is a bitwise OR of the constants that represent the protocols that the parallel port bus driver supports. For the forward and reverse protocol values, see the protocol constants defined in ntddpar.h (from NONE to ECP_ANY).

ModeMaskRev [in]

Specifies the reverse protocols. ModeMaskRev is a bitwise OR of the constants that represent the protocols that the parallel port bus driver supports.

ModeSafety [in]

Specifies the safety mode. Must be set to the SAFE_MODE enumeration value of the PARALLEL_SAFETY enumeration type:

typedef enum {
  SAFE_MODE,
  UNSAFE_MODE
} PARALLEL_SAFETY;

IsForward [in]

Specifies whether to connect the forward or the reverse protocol that the routine negotiates. If IsForward is TRUE, the forward protocol is connected. Otherwise, the reverse protocol is connected.

Return value

Return code Description
STATUS_SUCCESSFUL The IEEE mode was successfully negotiated.
STATUS_DEVICE_PROTOCOL_ERROR An IEEE mode is already set on the device.
STATUS_Xxx An internal operation resulted in an NTSTATUS error.

Remarks

To obtain a pointer to the system-supplied PNEGOTIATE_IEEE_MODE callback, a kernel-mode driver uses an IOCTL_INTERNAL_PARCLASS_CONNECT request, which returns a PARCLASS_INFORMATION structure. The NegotiateIeeeMode member of the PARCLASS_INFORMATION structure is a pointer to this callback.

The PNEGOTIATE_IEEE_MODE callback runs in the caller's thread at the IRQL of the caller.

See also