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 |
---|---|
|
The requested data was successfully transferred from the device. |
|
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) |