OutputBuffer is of type FILE_FS_CONTROL_INFORMATION, as described in [MS-FSCC] section 2.5.2.

Pseudocode for the operation is as follows:

  • If OutputBufferSize is smaller than BlockAlign(sizeof(FILE_FS_CONTROL_INFORMATION), 8) the operation MUST be failed with STATUS_INFO_LENGTH_MISMATCH.

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

  • If Open.File.Volume.IsQuotasSupported is FALSE, the operation MUST be failed with STATUS_VOLUME_NOT_UPGRADED.

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

  • If Quotas are supported on Open.File.Volume, the object store MUST set fields in OutputBuffer as follows:

    • OutputBuffer.DefaultQuotaThreshold set to Open.File.Volume.DefaultQuotaThreshold.

    • OutputBuffer.DefaultQuotaLimit set to Open.File.Volume.DefaultQuotaLimit.

    • OutputBuffer.FileSystemControlFlags set to Open.File.Volume.VolumeQuotaState.

  • EndIf

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

    • ByteCount set to sizeof(FILE_FS_CONTROL_INFORMATION).

    • Status set to STATUS_SUCCESS.