IRP_MJ_WRITE (Parallel Device)
The IRP_MJ_WRITE request transfers output data to a parallel device.
When Sent
A client uses an IRP_MJ_WRITE request whenever it transfers output data to a parallel device.
Input Parameters
The AssociatedIrp.SystemBuffer points to a write buffer that the client allocates for write data. The buffer must be large enough to hold the requested number of bytes to write to the parallel device.
The Parameters.Write.Length member points to the number of bytes to write to the parallel device.
Output Parameters
None.
I/O Status Block
The Information member is set to the number of bytes actually written to the parallel device.
The Status member is set to one of the following 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.STATUS_DEVICE_REMOVED
The device has been removed.
Operation
The system-supplied bus driver for parallel ports transfers data by using the write protocol that is set for the parallel device. The default write protocol is CENTRONICS. A client can negotiate a write protocol by using an IOCTL_IEEE1284_NEGOTIATE request.
The parallel port bus driver sets a cancel routine for the write request, marks the write request as pending, and queues the write request on a work queue. The write request is held in a state that can be canceled until the request is either completed or canceled.
For more information, see Reading and Writing a Parallel Device.
Requirements
Header |
Wdm.h (include Wdm.h or Ntddk.h) |
See also