IRP_MJ_READ (Parallel Device)
The IRP_MJ_READ request obtains input data from a parallel device.
When Sent
A client uses an IRP_MJ_READ request to obtain input from a parallel device.
Input Parameters
The Parameters.Read.Length member points to the number of bytes to read from the parallel device.
Output Parameters
The AssociatedIrp.SystemBuffer member points to a read buffer that the client allocates for the read data. The buffer must be large enough to hold the requested number of bytes.
I/O Status Block
The Information member is set to the number of bytes actually read from the parallel device.
The Status member is set to one of the following status values:
STATUS_SUCCESS
The request completed successfully.STATUS_DELETE_PENDING
The device is in the process of being removed.STATUS_CANCELLED
The request was canceled.STATUS_PENDING
The request is queued on a work queue for the parallel device.STATUS_INVALID_PARAMETER
The Parameters.Write.ByteOffset member is not zero. Note that both read and write requests use this member.STATUS_DEVICE_REMOVED
The device has been removed.
Operation
The system-supplied bus driver for parallel ports uses the read protocol set for the parallel device. The default read protocol is NIBBLE_MODE. A client can negotiate a read protocol by using an IOCTL_IEEE1284_NEGOTIATE request.
The parallel port bus driver sets a cancel routine for the read request, marks the read request as pending, and queues the read request on a work queue. The read request is held in the work queue in a state that can be canceled until the read request is either completed or canceled by the client.
For more information, see Reading and Writing a Parallel Device.
Requirements
Header |
Wdm.h (include Wdm.h or Ntddk.h) |
See also
IRP_MJ_WRITE (Parallel Device)