2.1.5.13.5 FileFsAttributeInformation
OutputBuffer is of type FILE_FS_ATTRIBUTE_INFORMATION, as described in [MS-FSCC] section 2.5.1.
This routine uses the following local variables:
32-bit unsigned integer: RemainingLength, BytesToCopy
Pseudocode for the operation is as follows:
If OutputBufferSize is smaller than BlockAlign(FieldOffset(FILE_FS_ATTRIBUTE_INFORMATION.FileSystemName), 4), the operation MUST be failed with STATUS_INFO_LENGTH_MISMATCH.
OutputBuffer MUST be constructed as follows:
OutputBuffer.FileSystemAttributes set to appropriate values, as specified in [MS-FSCC] section 2.5.1, based on the implementation of the given file system.<171>
OutputBuffer.MaximumComponentNameLength set to different values depending on the file system.<172>
OutputBuffer.FileSystemNameLength set to the length, in bytes, of the name of the file system on Open.File.Volume.
Set RemainingLength to OutputBufferSize - FieldOffset(FILE_FS_ATTRIBUTE_INFORMATION.FileSystemName).
If RemainingLength < OutputBuffer.FileSystemNameLength.
Set BytesToCopy to RemainingLength.
Else
Set BytesToCopy to OutputBuffer.FileSystemNameLength.
EndIf
Copy BytesToCopy bytes from the file system name string to OutputBuffer.FileSystemName.
Upon successful completion of the operation, the object store MUST return:
ByteCount set to FieldOffset(FILE_FS_ATTRIBUTE_INFORMATION.FileSystemName)+ BytesToCopy.
Status set to STATUS_BUFFER_OVERFLOW if BytesToCopy < OutputBuffer.FileSystemNameLength else STATUS_SUCCESS.