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

IRP_MJ_READ

IRP_MJ_READ (Parallel Device)

PPARALLEL_READ

PPARALLEL_WRITE

 

 

Send comments about this topic to Microsoft