PPARALLEL_READ callback function (parallel.h)

The PPARALLEL_READ-typed callback routine reads data from a parallel device. The system-supplied bus driver for parallel ports supplies this routine.

Syntax

PPARALLEL_READ PparallelRead;

NTSTATUS PparallelRead(
  [in]  PVOID Context,
  [out] PVOID Buffer,
  [in]  ULONG NumBytesToRead,
  [out] PULONG NumBytesRead,
  [in]  UCHAR Channel
)
{...}

Parameters

[in] Context

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

[out] Buffer

Pointer to a read buffer that the caller allocates.

[in] NumBytesToRead

Specifies the number of bytes to read. Must less than or equal to the number of bytes in the caller-allocated read buffer.

[out] NumBytesRead

Specifies the number of bytes that were actually read from the parallel device and saved in the caller-allocated read buffer.

[in] Channel

Not used.

Return value

Return code Description
STATUS_SUCCESS
The requested data was successfully transferred from the device.
STATUS_Xxx
An internal operation resulted in an NTSTATUS error.

Remarks

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

A client can only use this routine if it has a lock on a parallel port. A client obtains a lock on a parallel port by using an IOCTL_INTERNAL_LOCK_PORT request.

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

Requirements

Requirement Value
Target Platform Desktop
Header parallel.h (include Parallel.h)

See also

PPARALLEL_WRITE

IOCTL_INTERNAL_LOCK_PORT