WRITE_USING_TOKEN_HEADER structure (scsi.h)

The WRITE_USING_TOKEN_HEADER structure describes the destination data locations for an offload write data operation. The offload write data operation described by this structure is associated with a token representation of data (ROD).

Syntax

typedef struct {
  UCHAR WriteUsingTokenDataLength[2];
  UCHAR Immediate : 1;
  UCHAR Reserved1 : 7;
  UCHAR Reserved2[5];
  UCHAR BlockOffsetIntoToken[8];
  UCHAR Token[BLOCK_DEVICE_TOKEN_SIZE];
  UCHAR Reserved3[6];
  UCHAR BlockDeviceRangeDescriptorListLength[2];
  UCHAR BlockDeviceRangeDescriptor[ANYSIZE_ARRAY];
} WRITE_USING_TOKEN_HEADER, *PWRITE_USING_TOKEN_HEADER;

Members

WriteUsingTokenDataLength[2]

The length of this structure beginning with the Immediate parameter and include all of the elements of the BlockDeviceRangeDescriptor array.

Immediate

If set, the status of the WRITE USING TOKEN command is returned immediately after receipt and validation of the token ROD and range descriptors. Otherwise, status is returned after all command processing is complete.

Reserved1

Reserved bits.

Reserved2[5]

Reserved.

BlockOffsetIntoToken[8]

The offset, in logical blocks, in the ROD for Token indicating the start of the source data for the offload write data operation.

Token[BLOCK_DEVICE_TOKEN_SIZE]

A token created by a previous the POPULATE TOKEN command operation.

Reserved3[6]

Reserved.

BlockDeviceRangeDescriptorListLength[2]

The length, in bytes, for all of the BLOCK_DEVICE_RANGE_DESCRIPTOR structures in the BlockDeviceRangeDescriptor array.

BlockDeviceRangeDescriptor[ANYSIZE_ARRAY]

An array of BLOCK_DEVICE_RANGE_DESCRIPTOR structures which describe the destination data blocks for the offload write data transfer.

Remarks

All multibyte values are in big endian format. Prior to setting, these values must be converted from the endian format of the current platform.

Requirements

Requirement Value
Minimum supported client Available starting with Windows 8.
Header scsi.h (include Scsi.h, Minitape.h, Storport.h)

See also

BLOCK_DEVICE_RANGE_DESCRIPTOR

POPULATE_TOKEN_HEADER