Revision Summary Date Revision History Revision Class Comments 4/3/2007 0.01 New Version 0.01 release 7/3/2007 1.0 Major MLonghorn+90 7/20/2007 2.0 Major Updated and revised the technical content. 8/10/2007 3.0 Major Updated and revised the technical content. 9/28/2007 4.0 Major Updated and revised the technical content. 10/23/2007 5.0 Major Updated and revised the technical content. 11/30/2007 5.0.1 Editorial Changed language and formatting in the technical content. 1/25/2008 5.0.2 Editorial Changed language and formatting in the technical content. 3/14/2008 5.0.3 Editorial Changed language and formatting in the technical content. 5/16/2008 6.0 Updated and revised the technical content. 6/20/2008 7.0 Major Updated and revised the technical content. 7/25/2008 8.0 Major Updated and revised the technical content.
technical content. 3/12/2010 22.0 Major Updated and revised the technical content. 4/23/2010 23.0 Updated and revised the technical content. 6/4/2010 24.0 Major Updated and revised the technical content. 7/16/2010 25.0 Major Updated and revised the technical content. 8/27/2010 26.0 Major Updated and revised the technical content. 10/8/2010 27.0 Major Updated and revised the technical content. 11/19/2010 27.1 Minor Clarified the meaning of the technical content. 1/7/2011 27.1 None No changes to the meaning, language, or formatting of the technical content. 2/11/2011 28.0 Major Updated and revised the technical content. 3/25/2011 29.0 Major Updated and revised the technical content. 5/6/2011 30.0 Updated and revised the technical content. 6/17/2011 30.1 Minor Clarified the meaning of the
technical content. 9/23/2011 30.2 Minor Clarified the meaning of the technical content. 12/16/2011 31.0 Major Updated and revised the technical content. 3/30/2012 32.0 Major Updated and revised the technical content. 7/12/2012 33.0 Updated and revised the technical content. 10/25/2012 34.0 Major Updated and revised the technical content. 1/31/2013 35.0 Major Updated and revised the technical content. 8/8/2013 36.0 Updated and revised the technical content. 11/14/2013 36.0 None No changes to the meaning, language, or formatting of the technical content. 2/13/2014 37.0 Updated and revised the technical content. 5/15/2014 37.0 None No changes to the meaning, language, or formatting of the technical content. 6/30/2015 38.0 Major Significantly changed the technical content.
specified in section . IO_REPARSE_TAG_HSM 0xC0000004 Obsolete. Used by legacy Hierarchical Storage Manager Product. IO_REPARSE_TAG_DRIVER_EXTENDER 0x80000005 Home server extender.<3> IO_REPARSE_TAG_HSM2 0x80000006 Obsolete. Used by legacy Hierarchical Storage Manager Product. IO_REPARSE_TAG_SIS 0x80000007 Used by filter driver. Server-side interpretation only, not meaningful over the wire. IO_REPARSE_TAG_DFS 0x8000000A Used by the DFS filter. The DFS is described in the Distributed File System (DFS): Referral Protocol Specification . Server-side interpretation only, not meaningful over the wire. IO_REPARSE_TAG_FILTER_MANAGER 0x8000000B Used by test harness.<4> IO_REPARSE_TAG_SYMLINK 0xA000000C Used for support. See section . IO_REPARSE_TAG_DFSR 0x80000012 Used by the DFS filter. The DFS is described in [MS-DFSC]. Server-side interpretation only, not
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 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. (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 that this message returns is a status code, as specified in section 2.3. The status code returned directly by the function that processes this FSCTL MUST be STATUS_SUCCESS or one of the following.
A FALSE value will cause the file system to attempt to "unsparse" the file by allocating clusters for any regions of the file that are currently sparsed. If the entire file is successfully unsparsed, the sparse flag is cleared for the file. If an error is encountered during unsparsing, any regions of the file that were unsparsed MAY<59> remain unsparsed. A TRUE value will cause the sparse flag for the file to set. Currently allocated clusters SHOULD NOT<60> be deallocated. FSCTL_SET_SPARSE Reply This message returns the results of the . The only data item this message returns is a status code, as specified in section 2.3. The status code returned directly by the function that processes this MUST be STATUS_SUCCESS or one of the following. code Meaning STATUS_INVALID_PARAMETER 0xC000000D The handle is not to a file, or the input buffer length is nonzero and is less than the size of a FILE_SET_SPARSE_BUFFER structure. STATUS_ACCESS_DENIED 0xC0000022 The handle is not open with write data or write attribute access. FSCTL_SET_ZERO_DATA Request The FSCTL_SET_ZERO_DATA request message requests that the server fill the specified range of the file (associated with the handle on which this was invoked) with zeros. The message contains a FILE_ZERO_DATA_INFORMATION element. The FILE_ZERO_DATA_INFORMATION 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 FileOffset ... BeyondFinalZero ... FileOffset (8 bytes): A 64-bit signed integer that contains the file offset of the start of the range to set to zeros, in bytes. The value of this field MUST be greater than or equal to 0. BeyondFinalZero (8 A 64-bit signed integer that contains the byte offset of the first byte beyond the last zeroed byte. The value of this field MUST be greater than or equal to 0.
information class. FileAlignmentInformation This information class is used to query the buffer alignment required by the underlying device. A FILE_ALIGNMENT_INFORMATION data element, defined as follows, is returned by the server. 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 AlignmentRequirement AlignmentRequirement (4 bytes): A 32-bit unsigned integer that MUST contain one of the following values. Value Meaning FILE_BYTE_ALIGNMENT 0x00000000 If this value is specified, there are no alignment requirements for the device. FILE_WORD_ALIGNMENT 0x00000001 If this value is specified, data MUST be aligned on a 2-byte boundary. FILE_LONG_ALIGNMENT 0x00000003 If this value is specified, data MUST be aligned on a 4-byte boundary. FILE_QUAD_ALIGNMENT 0x00000007 If this value is specified, data MUST be aligned on an 8-byte boundary. FILE_OCTA_ALIGNMENT 0X0000000F If this value is specified, data MUST be aligned on a 16-byte boundary. FILE_32_BYTE_ALIGNMENT 0X0000001F If this value is specified, data MUST be aligned on a 32-byte boundary. FILE_64_BYTE_ALIGNMENT 0X0000003F If this value is specified, data MUST be aligned on a 64-byte boundary. FILE_128_BYTE_ALIGNMENT 0X0000007F If this value is specified, data MUST be aligned on a 128-byte boundary. FILE_256_BYTE_ALIGNMENT 0X000000FF If this is specified, data MUST be aligned on a 256-byte boundary. FILE_512_BYTE_ALIGNMENT 0X000001FF If this value is specified, data MUST be aligned on a 512-byte boundary. This operation returns a status code, as specified in section 2.3. The status code returned directly by the function that processes this file information class MUST be STATUS_SUCCESS or one of the following.
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. STATUS_INVALID_PARAMETER 0xC000000D Returned when setting the offset if the CurrentByteOffset is negative or the file was opened using the FILE_NO_INTERMEDIATE_BUFFERING flag and CurrentByteOffset is not aligned to a sector boundary. FileQuotaInformation This information class is used to query or to set file quota information for a . For queries, an optional buffer of data elements is provided by the client to specify the s for which quota information is requested. If the FILE_GET_QUOTA_INFORMATION buffer is not specified, information for all quotas is returned. A buffer of FILE_QUOTA_INFORMATION data elements is returned by the server. For sets, FILE_QUOTA_INFORMATION data elements are populated and sent by the client, as specified in section 2.2.7.6.1 and section 3.2.4.15.<122> When multiple FILE_QUOTA_INFORMATION data elements are present in the buffer, each MUST be aligned on an 8-byte boundary. Any bytes inserted for alignment SHOULD be set to zero, and the receiver MUST ignore them. No padding is required following the last data element. A FILE_QUOTA_INFORMATION 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 NextEntryOffset SidLength ChangeTime ... QuotaUsed ... QuotaThreshold ... QuotaLimit ... Sid (variable)
0x00200000 FILE_SEQUENTIAL_WRITE_ONCE 0x00100000 The underlying volume is write once. FILE_READ_ONLY_VOLUME 0x00080000 If set, the volume has been mounted in read-only mode.<135> FILE_NAMED_STREAMS 0x00040000 The file system supports . FILE_SUPPORTS_ENCRYPTION 0x00020000 The file system supports the Encrypted File System (EFS).<136> FILE_SUPPORTS_OBJECT_IDS 0x00010000 The file system supports . FILE_VOLUME_IS_COMPRESSED 0x00008000 The specified volume is a compressed volume. This flag is incompatible with the FILE_FILE_COMPRESSION flag. FILE_SUPPORTS_REMOTE_STORAGE 0x00000100 The file system supports remote storage.<137> FILE_SUPPORTS_REPARSE_POINTS 0x00000080 The file system supports . FILE_SUPPORTS_SPARSE_FILES 0x00000040 The file system supports . FILE_VOLUME_QUOTAS 0x00000020 The file system supports per-user quotas. FILE_FILE_COMPRESSION 0x00000010 The file volume supports file-based compression. This flag is incompatible with the FILE_VOLUME_IS_COMPRESSED flag. FILE_PERSISTENT_ACLS 0x00000008 The file system preserves and enforces access control lists (ACLs). FILE_UNICODE_ON_DISK 0x00000004 The file system supports Unicode in file and directory names. This flag applies only to file and directory names; the file system neither restricts nor interprets the bytes of data within a file. FILE_CASE_PRESERVED_NAMES 0x00000002 The file system preserves the case of file names when it places a name on disk. FILE_CASE_SENSITIVE_SEARCH 0x00000001 The file system supports case-sensitive file names when looking up (searching for) file names in a directory. FILE_SUPPORT_INTEGRITY_STREAMS 0x04000000 The file system supports integrity streams.<138> FILE_SUPPORTS_BLOCK_REFCOUNTING 0x08000000 The file system supports sharing logical clusters between on the same volume. The file system reallocates on writes to shared clusters. Indicates that FSCTL_DUPLICATE_EXTENTS_TO_FILE is a supported operation.
Index A 40 23 14 B 39 26 C 192 76 26 15 D Data elements 25 21 23 15 26 15 80 Details 15 E 170 42 53 F 41 Fields 15 14 14 166 97 153 99 101 102 116 144 89 90 89 118 131 25 25 167 21 21 22 136 137 141 142 64 145 146 77 99 102 103 103 104 105 107 109 111 111 112 153 156 164 158 158 159 160 161 162 163 113 115 117 118 121 123 126 FileLinkInformation packet ( 127, 127, 128) 129 130 132 132 133 135 137 138 141 144 146 147 148 149 150 151 32 152 26 28 28 29 29