The server provides:

  • Open: An Open of a DataStream or DirectoryStream.

  • OutputBufferSize: The maximum number of bytes to return in OutputBuffer.

Upon completion, the object store MUST return:

  • Status: An NTSTATUS code that specifies the result.

  • OutputBuffer: An array of bytes that will return an FSCTL_GET_INTEGRITY_INFORMATION_BUFFER structure, as specified in [MS-FSCC] section 2.3.52.

  • BytesReturned: The number of bytes returned in OutputBuffer.

Support for this operation is optional. If the object store does not implement this functionality, the operation MUST be failed with STATUS_INVALID_DEVICE_REQUEST.<75>

The operation MUST be failed with STATUS_INVALID_PARAMETER under any of the following conditions:

  • OutputBufferSize is less than  sizeof(FSCTL_GET_INTEGRITY_INFORMATION_BUFFER).

  • Open.Stream.StreamType is not DirectoryStream or DataStream.

Pseudocode for the operation is as follows:

  • The object store MUST initialize all fields in OutputBuffer to zero.

  • The object store MUST set OutputBuffer.CheckSumAlgorithm to Open.Stream.ChecksumAlgorithm.

  • The object store MUST set OutputBuffer.ChecksumChunkSizeInBytes to Open.File.Volume.ChecksumChunkSize.

  • The object store MUST set OutputBuffer.ClusterSizeInBytes to Open.File.Volume.ClusterSize.

  • If Open.Stream.StreamType is DataStream and Open.Stream.ChecksumEnforcementOff is TRUE, then the object store MUST set OutputBuffer.Flags to FSCTL_INTEGRITY_FLAG_CHECKSUM_ENFORCEMENT_OFF.

  • Upon successful completion of the operation, the object store MUST return:


    • Status set to STATUS_SUCCESS.