Error code Meaning STATUS_BUFFER_TOO_SMALL 0xC0000023 The output buffer is too small to contain a FILESYSTEM_STATISTICS structure. STATUS_BUFFER_OVERFLOW 0x80000005 The output buffer was filled before all the statistics data could be returned. FILESYSTEM_STATISTICS The FILESYSTEM_STATISTICS data element is returned with a message. It contains the generic information for the message. The FILESYSTEM_STATISTICS data element is as follows: 0 1 2 3 4 5 6 7 8 9 1 0 1 2 3 4 5 6 7 8 9 2 0 1 2 3 4 5 6 7 8 9 3 0 1 FileSystemType Version SizeOfCompleteStructure UserFileReads UserFileReadBytes UserDiskReads UserFileWrites UserFileWriteBytes UserDiskWrites MetaDataReads MetaDataReadBytes MetaDataDiskReads MetaDataWrites MetaDataWriteBytes MetaDataDiskWrites FileSystemType (2 bytes): A 16-bit unsigned integer value containing the type of file system. This field MUST contain one of the following values. Value Meaning FILESYSTEM_STATISTICS_TYPE_NTFS The file system is an file system. If this value is set, this structure
This message also returns a status code as specified in section . Upon success, the status code returned directly by the function that processes this is STATUS_SUCCESS. The most common error codes are listed in the following table. Error code Meaning STATUS_INVALID_PARAMETER 0xC000000D The handle specified is not open. STATUS_VOLUME_DISMOUNTED 0xC000026E The specified volume is no longer mounted. STATUS_BUFFER_TOO_SMALL 0xC0000023 The output buffer is too small to contain an NTFS_VOLUME_DATA_BUFFER structure. FSCTL_GET_REFS_VOLUME_DATA Request This message requests that the server return information about the ReFS file system volume that contains the file or directory that is associated with the handle on which this FSCTL was invoked. This message does not contain any parameters. FSCTL_GET_REFS_VOLUME_DATA Reply The FSCTL_GET_REFS_VOLUME_DATA reply message returns the results of the FSCTL_GET_REFS_VOLUME_DATA request as an REFS_VOLUME_DATA_BUFFER element. The REFS_VOLUME_DATA_BUFFER contains information on a volume. 0 1 2 3 4 5 6 7 8 9 1 0 1 2 3 4 5 6 7 8 9 2 0 1 2 3 4 5 6 7 8 9 3 0 1 ByteCount MajorVersion MinorVersion BytesPerPhysicalSector VolumeSerialNumber ... NumberSectors ... TotalClusters ...
Value Meaning CHECKSUM_TYPE_NONE 0x0000 The file or directory is set to not use integrity. CHECKSUM_TYPE_CRC64 0x0002 The file or directory is set to provide integrity using a CRC64 checksum. CHECKSUM_TYPE_UNCHANGED 0xFFFF The integrity status of the file or directory is unchanged. All other values 0x0003 — 0xFFFE Reserved for future use and MUST NOT be used. For ReFS v2, the field MUST be set to one of the following standard values. Value Meaning CHECKSUM_TYPE_NONE 0x0000 The file or directory is set to not use integrity. CHECKSUM_TYPE_CRC32 0x0001 The file or directory is set to provide integrity using a CRC32 checksum. CHECKSUM_TYPE_CRC64 0x0002 The file or directory is set to provide integrity using a CRC64 checksum. CHECKSUM_TYPE_UNCHANGED 0xFFFF The integrity status of the file or directory is unchanged. All other values 0x0003 — 0xFFFE Reserved for future use and MUST NOT be used. Note that for ReFS v2 any value except CHECKSUM_TYPE_NONE or CHECKSUM_TYPE_UNCHANGED will set the integrity value to a file-system-selected integrity mechanism and is not guaranteed to use the user specified checksum value. Reserved (2 bytes): A 16-bit reserved value. This field MUST be set to zero and MUST be ignored. Flags (4 bytes): A 32-bit unsigned integer that contains zero or more of the following flag values. Flag values that are unspecified in the following table SHOULD be set to 0 and MUST be ignored. Value Meaning FSCTL_INTEGRITY_FLAG_CHECKSUM_ENFORCEMENT_OFF 0x00000001 When set, if a checksum does not match, the associated I/O operation will not be failed. FSCTL_SET_INTEGRITY_INFORMATION Reply This message returns the results of the . The only data item this message returns is a status code, as specified in section . Upon success, the status code returned by the function that processes this is STATUS_SUCCESS. The most common error codes are listed in the following table.
This operation returns a status code as specified in section . Upon success, the status code returned by the function that processes this file information class is STATUS_SUCCESS. The most common error codes are listed in the following table. Error code Meaning STATUS_INFO_LENGTH_MISMATCH 0xC0000004 The specified information record length does not match the length that is required for the specified information class. FileAllocationInformation This information class is used to set but not to query the allocation size for a file. The file system is passed a 64-bit signed integer containing the file allocation size, in bytes. The file system rounds the requested allocation size up to an integer multiple of the cluster size for nonresident files, or an implementation-defined multiple for resident files.<83><84> All unused allocation (beyond EOF) is freed on the last handle close. A FILE_ALLOCATION_INFORMATION data element, defined as follows, is provided by the client. 0 1 2 3 4 5 6 7 8 9 1 0 1 2 3 4 5 6 7 8 9 2 0 1 2 3 4 5 6 7 8 9 3 0 1 AllocationSize ... AllocationSize (8 bytes): A 64-bit signed integer that contains the desired allocation to be used by the given file. This operation returns a status code as specified in section . Upon success, the status code returned by the function that processes this file information class is STATUS_SUCCESS. The most common error codes are listed in the following table. Error code Meaning STATUS_INVALID_PARAMETER 0xC000000D The handle is for a directory and not a file, or the allocation is greater than the maximum file size allowed. STATUS_ACCESS_DENIED 0xC0000022 The handle was not opened to write file data or file attributes. STATUS_DISK_FULL 0xC000007F The disk is full. STATUS_INFO_LENGTH_MISMATCH 0xC0000004 The specified information record length does not match the length that is required for the specified information class. FileAlternateNameInformation This information class is used to query information for a file. The alternate name for a file is its format name (eight characters that appear before the "." and three characters that appear after). A
0 1 2 3 4 5 6 7 8 9 1 0 1 2 3 4 5 6 7 8 9 2 0 1 2 3 4 5 6 7 8 9 3 0 1 NextEntryOffset FileIndex CreationTime ... LastAccessTime ... LastWriteTime ... ChangeTime ... EndOfFile ... AllocationSize ... FileAttributes FileNameLength EaSize FileName (variable) ... NextEntryOffset (4 bytes): A 32-bit unsigned integer that contains the byte offset from the beginning of this entry, at which the next FILE_FULL_DIR_INFORMATION entry is located, if multiple entries are present in a buffer. This member is zero if no other entries follow this one. An implementation MUST use this value to determine the location of the next entry (if multiple entries are present in a buffer). FileIndex (4 bytes): A 32-bit unsigned integer that contains the byte offset of the file within the parent directory. For file systems such as , in which the position of a file within the parent directory is not fixed and can be changed at any time to maintain sort order, this field SHOULD be set to 0, and MUST be ignored.<96>
30 30 30 31 35 34 46 46 47 47 48 48 53 53 51 50 51 53 53 54 54 56 56 59 57 93 94 97 98 60 60 59 62 62 62 61 63 63 65 65 66 65 68 68 70 70 71 71 77 77 78 78 81 80 82 81 84 83 85 85 86 85 87 86 88 87 87 88 88 89 89 90 89 91 91 G 9 I 176 176 Information classes 100 156 13 9 173 172 174 174 L 15 M 42 43 41 20 N Names 24 26 13 21 37 48 O 14 14 P 176 176 24 182 R