2.1.5.13.1 FileFsVolumeInformation
OutputBuffer is of type FILE_FS_VOLUME_INFORMATION, as described in [MS-FSCC] section 2.5.9.
This routine uses the following local variables:
32-bit unsigned integers: RemainingLength, BytesToCopy
Pseudocode for the operation is as follows:
If OutputBufferSize is smaller than BlockAlign(FieldOffset(FILE_FS_VOLUME_INFORMATION.VolumeLabel), 8), the operation MUST be failed with STATUS_INFO_LENGTH_MISMATCH.
OutputBuffer MUST be constructed as follows:
OutputBuffer.VolumeCreationTime set to Open.File.Volume.VolumeCreationTime.
OutputBuffer.VolumeSerialNumber set to Open.File.Volume.VolumeSerialNumber.
OutputBuffer.VolumeLabelLength set to the length, in bytes, of the Open.File.Volume.VolumeLabel string. This value can be zero.
OutputBuffer.SupportsObjects set to TRUE.
Set RemainingLength to OutputBufferSize - FieldOffset(FILE_FS_VOLUME_INFORMATION.VolumeLabel).
If RemainingLength < OutputBuffer.VolumeLabelLength:
Set BytesToCopy to RemainingLength.
Else:
Set BytesToCopy to OutputBuffer.VolumeLabelLength.
EndIf
Copy BytesToCopy bytes from Volume.VolumeLable to OutputBuffer.VolumeLabel.
Upon successful completion of the operation, the object store MUST return:
ByteCount set to FieldOffset(FILE_FS_VOLUME_INFORMATION.VolumeLabel) + BytesToCopy.
Status set to STATUS_BUFFER_OVERFLOW if BytesToCopy < OutputBuffer.VolumeLabelLength else STATUS_SUCCESS.