IRB_REQ_ASYNC_WRITE structure (1394.h)

This structure contains the fields necessary for the 1394 stack to carry out an asynchronous write request.

Syntax

typedef struct _IRB_REQ_ASYNC_WRITE {
  IO_ADDRESS DestinationAddress;
  ULONG      nNumberOfBytesToWrite;
  ULONG      nBlockSize;
  ULONG      fulFlags;
  PMDL       Mdl;
  ULONG      ulGeneration;
  UCHAR      chPriority;
  UCHAR      nSpeed;
  UCHAR      tCode;
  UCHAR      Reserved;
  ULONG      ElapsedTime;
} IRB_REQ_ASYNC_WRITE;

Members

DestinationAddress

Specifies the 1394 64-bit destination address for this write operation. The driver only must fill in the IA_Destination_Offset member of u.AsyncWrite.DestinationAddress; the bus driver fills in the IA_Destination_ID member. See IO_ADDRESS for the structure description.

nNumberOfBytesToWrite

Specifies the number of bytes to write to the 1394 node.

nBlockSize

Specifies the size of each individual block within the data stream that is written as a whole to the node. If this parameter is zero, then the maximum packet size for the speed selected is used in breaking up these write requests, unless raw-mode addressing is used.

If raw-mode addressing is used, the client driver should set the nBlockSize member to the maximum asynchronous payload size that is supported by the device at the connected speed.

For more information on raw-mode addressing, see Sending Asynchronous I/O Request Packets on the IEEE 1394 Bus.

Note  In Windows 7 and later versions of Windows, you can specify new values higher speed and greater sized payloads. For more information, see New Flags for Speed and Payload Size and IEEE 1394 IOCTL Changes in Device Driver Interface (DDI) Changes in Windows 7.
 

fulFlags

Specifies any nondefault settings for this operation. The following flags are provided.

Flag Description
ASYNC_FLAGS_NONINCREMENTING Do not increment 1394 address during asynchronous operation. This flag is set only in large asynchronous requests (that is, those greater than asynchronous packet size).
ASYNC_FLAGS_NO_STATUS Always return success from the write operation, whether the write succeeds or fails.
ASYNC_FLAGS_BROADCAST Broadcast to all nodes on the bus.
 

Use the bitwise operator OR to combine the settings.

Mdl

Points to an MDL that describes the device driver's buffer, which receives data from the 1394 node.

ulGeneration

Specifies the bus reset generation as known by the device driver that submitted this asynchronous request. If the generation count specified does not match the actual generation of the bus, this request is returned with a status of STATUS_INVALID_GENERATION.

chPriority

Reserved.

nSpeed

Reserved.

tCode

Reserved.

Reserved

Reserved.

ElapsedTime

Elapsed time in nanoseconds. Only valid for flag ASYNC_FLAGS_PING.

Requirements

Requirement Value
Header 1394.h