2.3.42 FSCTL_OFFLOAD_READ Reply
The FSCTL_OFFLOAD_READ Reply message returns the results of the FSCTL_OFFLOAD_READ Request (section 2.3.41).
The FSCTL_OFFLOAD_READ_OUTPUT data element is as follows.
|
|
|
|
|
|
|
|
|
|
1 |
|
|
|
|
|
|
|
|
|
2 |
|
|
|
|
|
|
|
|
|
3 |
|
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Size |
|||||||||||||||||||||||||||||||
Flags |
|||||||||||||||||||||||||||||||
TransferLength |
|||||||||||||||||||||||||||||||
... |
|||||||||||||||||||||||||||||||
Token (512 bytes) |
|||||||||||||||||||||||||||||||
... |
|||||||||||||||||||||||||||||||
... |
Size (4 bytes): A 32-bit unsigned integer that indicates the size, in bytes, of the returned data element.
Flags (4 bytes): A 32-bit unsigned integer that indicates which flags were returned for this operation. Possible values for the flags follow. All unused bits are reserved for future use, SHOULD be set to 0, and MUST be ignored.
-
Value
Meaning
OFFLOAD_READ_FLAG_ALL_ZERO_BEYOND_CURRENT_RANGE
0x00000001
The data beyond the current range is logically equivalent to zero.
TransferLength (8 bytes): A 64-bit unsigned integer that contains the amount, in bytes, of data that the Token logically represents. This value indicates a contiguous region of the file from the beginning of the requested offset in the FileOffset field in the FSCTL_OFFLOAD_READ_INPUT data element (section 2.3.41). This value can be smaller than the CopyLength field specified in the FSCTL_OFFLOAD_READ_INPUT data element, which indicates that less data was logically represented (logically read) with the Token than was requested. The value of this field MUST be greater than 0x0000000000000000 and MUST be aligned to a logical sector boundary on the volume.
Token (512 bytes): A STORAGE_OFFLOAD_TOKEN (section 2.1.11) structure that contains the generated 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. The contents of this field MUST NOT be modified during subsequent operations.<39>
This message returns a status code as specified in section 2.2. Upon success, the status code returned by the function that processes this FSCTL is STATUS_SUCCESS. The most common error codes are listed in the following table.
Error code |
Meaning |
---|---|
STATUS_INVALID_DEVICE_REQUEST 0xC0000010 |
The file system does not support offload operations. |
STATUS_INVALID_PARAMETER 0xC000000D |
At least one of the following assertions is true:
|
STATUS_OFFLOAD_READ_FILE_NOT_SUPPORTED 0xC000A2A3 |
Offload operations cannot be performed on:
|
STATUS_NOT_SUPPORTED 0xC00000BB |
The file system indicates that the volume does not support the Offload Read operation. |
STATUS_OFFLOAD_READ_FLT_NOT_SUPPORTED 0xC000A2A1 |
A file system filter on the server has not opted in for Offload Read support. |
STATUS_FILE_DELETED 0xC0000123 |
The specified data stream is not valid. |
STATUS_FILE_CLOSED 0xC0000128 |
The specified file handle is closed. |
STATUS_END_OF_FILE 0xC0000011 |
The file read starts beyond the End Of the File (EOF).<40> |
STATUS_INSUFFICIENT_RESOURCES 0xC000009A |
There were insufficient resources to complete the operation. |
STATUS_BUFFER_TOO_SMALL 0xC0000023 |
The input buffer is too small to contain an FSCTL_OFFLOAD_READ_INPUT data element. or The output buffer is too small to contain an FSCTL_OFFLOAD_READ_OUTPUT data element. |
STATUS_DEVICE_FEATURE_NOT_SUPPORTED 0xC0000463 |
The storage device does not support offload read. |