REQUEST_ASYNC_STREAM control code

The REQUEST_ASYNC_STREAM request writes packets to an isochronous channel, during the asynchronous phase of the IEEE 1394 bus.

The relevant members of the IRB for this request are:


typedef struct _IRB {
  ULONG FunctionNumber;
    .
    .
    .
  union {
    struct {
      ULONG           nNumberOfBytesToStream;
      ULONG           fulFlags;
      PMDL            Mdl;
      ULONG           ulTag;
      ULONG           nChannel;
      ULONG           ulSynch;
      ULONG           Reserved;
      UCHAR           nSpeed;
    } AsyncStream;
    .
    .
    .
  } u;
} IRB;

IRB Input

FunctionNumber

REQUEST_ASYNC_STREAM

u.AsyncStream.nNumberOfBytesToStream

Specifies the number of bytes to write.

u.AsyncStream.fulFlags

Reserved. Drivers must set this to zero.

u.AsyncStream.Mdl

Specifies the source buffer.

u.AsyncStream.ulTag

Specifies the Tag field for any packets generated from this request.

u.AsyncStream.nChannel

Specifies the channel to which the data will be written.

u.AsyncStream.ulSynch

Specifies the Sy field for any packets generated from this request.

u.AsyncStream.Reserved

Reserved. Drivers must set this to zero.

u.AsyncStream.nSpeed

Specifies the transfer rate. The possible speed values are SPEED_FLAGS_xxx, where xxx is the (approximate) transfer rate in megabits per second. Existing hardware currently supports transfer rates of 100, 200, and 400 Mb/sec.

Transfer RateDescription

SPEED_FLAGS_100

100 Mb/s

SPEED_FLAGS_200

200 Mb/s

SPEED_FLAGS_400

400 Mb/s

 

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.

I/O Status Block

The bus driver sets Irp->IoStatus.Status to STATUS_SUCCESS on success. The bus driver forwards the IRP to the port driver by means of IoCallDriver, and in case of failure sets Irp->IoStatus.Status to the error status returned by IoCallDriver. See IoCallDriver for a description of the error codes it returns.

Operation

Since the packet is sent during the asynchronous phase of the bus cycle, it does not have a guaranteed bandwidth and, therefore, it lacks a guaranteed delivery time.

See Also

IOCTL_IEEE1394_API_REQUEST

Requirements

Header

1394.h (include 1394.h)

 

 

Send comments about this topic to Microsoft

Show:
© 2014 Microsoft