2.1.11 STORAGE_OFFLOAD_TOKEN

The STORAGE_OFFLOAD_TOKEN structure contains the Token to be used as a representation of the data contained within the portion of the file specified in the FSCTL_OFFLOAD_READ_INPUT data element at the time of the FSCTL_OFFLOAD_READ operation. This Token is used in FSCTL_OFFLOAD_READ and FSCTL_OFFLOAD_WRITE operations. The format of the data within this field is either vendor-specific or of a well-known type. The contents of this field MUST NOT be modified during subsequent operations.<12>

The TokenType and TokenIdLength fields of STORAGE_OFFLOAD_TOKEN structure MUST be sent in big-endian format. The TokenId field is a stream of bytes and has no endian property.

The STORAGE_OFFLOAD_TOKEN structure is as follows.


0


1


2


3


4


5


6


7


8


9

1
0


1


2


3


4


5


6


7


8


9

2
0


1


2


3


4


5


6


7


8


9

3
0


1

TokenType

Reserved

TokenIdLength

TokenId (504 bytes)

...

...

TokenType (4 bytes): A 32-bit unsigned integer that defines the type of Token that is contained within the STORAGE_OFFLOAD_TOKEN structure. This field MUST contain one of the following values.

Value

Meaning

STORAGE_OFFLOAD_TOKEN_TYPE_ZERO_DATA

0xFFFF0001

A well-known Token that indicates that the data logically represented by the Token is logically equivalent to zero.<13>

Reserved

0xFFFF0002 – 0xFFFFFFFF

Reserved for other well-known Tokens currently undefined.

Any other value.

A vendor-specific Token format is contained within the Token field.

Reserved (2 bytes): A 16-bit unsigned integer that is reserved. This field SHOULD be set to 0x0000 and MUST be ignored.

TokenIdLength (2 bytes): A 16-bit unsigned integer that defines the length of the TokenId field in bytes.

TokenId (504 bytes): A 504-byte unsigned integer that contains opaque vendor-specific data.