meaning, language, or formatting of the technical content. 5/6/2011 7.0 Major Updated and revised the technical content. 6/17/2011 8.0 Major Updated and revised the technical content. 9/23/2011 9.0 Updated and revised the technical content. 12/16/2011 10.0 Major Updated and revised the technical content. 3/30/2012 11.0 Major Updated and revised the technical content. 7/12/2012 12.0 Major Updated and revised the technical content. 10/25/2012 13.0 Major Updated and revised the technical content. 1/31/2013 14.0 Updated and revised the technical content. 8/8/2013 15.0 Major Updated and revised the technical content.
11/14/2013 16.0 Major Updated and revised the technical content. 2/13/2014 17.0 Updated and revised the technical content. 5/15/2014 18.0 Major Updated and revised the technical content. 6/30/2015 19.0 Significantly changed the technical content. 10/16/2015 20.0 Major Significantly changed the technical content. 3/2/2016 21.0 Major Significantly changed the technical content. 7/14/2016 22.0 Major Significantly changed the technical content. 9/26/2016 23.0 Significantly changed the technical content.
Set NameLength to the length of RelativeName, in bytes. If (OutputBufferLength - OutputBufferOffset) is less than BlockAlign(NameLength + 6, 8): BytesReturned is set to OutputBufferOffset. If OutputBufferOffset is not zero: The operation returns with STATUS_SUCCESS. Else: The operation MUST be failed with STATUS_BUFFER_TOO_SMALL. EndIf Construct a FILE_NAME_INFORMATION structure starting at OutputBuffer[OutputBufferOffset], with the first 4 bytes (the FileNameLength) set to NameLength, and the next NameLength bytes (the FileName) set to RelativeName. OutputBufferOffset = OutputBufferOffset + BlockAlign(NameLength + 6, 8). EndIf Set Open.FindBySidRestartIndex to Link.File.FileNumber + 1. EndFor Upon successful completion of the operation, the object store MUST return: BytesReturned set to OutputBufferOffset. Status set to STATUS_SUCCESS. FSCTL_GET_COMPRESSION The server provides: Open: An Open of a DataStream or DirectoryStream. OutputBufferSize: The maximum number of to return in OutputBuffer. On completion, the object MUST return: Status: An NTSTATUS code that specifies the result. OutputBuffer: An array of bytes that will return a USHORT value representing the compression state of the stream, as specified in section 2.3.14. BytesReturned: The number of bytes returned in OutputBuffer. Support for this operation is optional. If the object store does not implement this functionality, the operation MUST be failed with STATUS_INVALID_DEVICE_REQUEST.<74> Pseudocode for the operation is as follows: If OutputBufferSize is less than sizeof(USHORT) (2 bytes), the operation MUST be failed with STATUS_INVALID_PARAMETER.
If Open.Stream.StreamType is DirectoryStream: If Open.File.FileAttributes.FILE_ATTRIBUTE_COMPRESSED is TRUE: The object MUST set OutputBuffer.CompressionState to COMPRESSION_FORMAT_LZNT1. Else: The object MUST set OutputBuffer.CompressionState to COMPRESSION_FORMAT_NONE. EndIf Else: If Open.Stream.IsCompressed is TRUE: The object store MUST set OutputBuffer.CompressionState to COMPRESSION_FORMAT_LZNT1. Else: The object store MUST set OutputBuffer.CompressionState to COMPRESSION_FORMAT_NONE. EndIf EndIf Upon successful completion of the operation, the object store MUST return: BytesReturned set to sizeof(USHORT) (2 bytes). Status set to STATUS_SUCCESS. FSCTL_GET_INTEGRITY_INFORMATION The server provides: Open: An Open of a DataStream or DirectoryStream. OutputBufferSize: The maximum number of bytes to return in OutputBuffer. Upon completion, the object store MUST return: Status: An NTSTATUS code that specifies the result. OutputBuffer: An array of bytes that will return an FSCTL_GET_INTEGRITY_INFORMATION_BUFFER structure, as specified in section 2.3.52. BytesReturned: The number of bytes returned in OutputBuffer. Support for this operation is optional. If the object does not implement this functionality, the operation MUST be failed with STATUS_INVALID_DEVICE_REQUEST.<75> The operation MUST be failed with STATUS_INVALID_PARAMETER under any of the following conditions: OutputBufferSize is less than sizeof(FSCTL_GET_INTEGRITY_INFORMATION_BUFFER). Open.Stream.StreamType is not DirectoryStream or DataStream.
10 millisecond granularity 1 microsecond granularity <14> Section 2.1.1.3: The following defines the support of file time stamps across various Windows file systems. More information can be found in section 6 of the File System Behavior Overview document [FSBO]. Timestamp ReFS NTFS FAT EXFAT UDFS CreationTime Stored in UTC 100 nanosecond granularity Stored in UTC 100 nanosecond granularity Stored in local time 10 millisecond granularity Stored in UTC if available, else in local time 10 millisecond granularity Stored in UTC if available, else in local time 1 microsecond granularity LastAccessTime Stored in UTC 100 nanosecond granularity Updated at 60 minute granularity Stored in UTC 100 nanosecond granularity Updated at 60 minute granularity Stored in local time 1 day granularity Stored in UTC if available, else in time 2 second granularity Stored in UTC if available, else in local time 1 microsecond granularity ChangeTime Stored in UTC 100 nanosecond granularity Stored in UTC 100 nanosecond granularity Not Supported Not Supported Stored in UTC if available, else in local time 1 microsecond granularity LastWriteTime Stored in UTC 100 nanosecond granularity Stored in UTC 100 nanosecond granularity Stored in local time 2 second granularity Stored in UTC if available, else in local time 10 millisecond granularity Stored in UTC if available, else in local time 1 microsecond granularity <15> Section 2.1.1.3: The following table defines the support of file time stamps across various Windows file systems. More information can be found in section 6 of the File System Behavior Overview document [FSBO]. Timestamp ReFS NTFS FAT EXFAT UDFS CreationTime Stored in UTC Stored in UTC Stored in local time Stored in UTC if Stored in UTC if
10 millisecond granularity 1 microsecond granularity LastAccessTime Stored in UTC 100 nanosecond granularity Updated at 60 minute granularity Stored in UTC 100 nanosecond granularity Updated at 60 minute granularity Stored in local time 1 day granularity Stored in UTC if available, else in local time 2 second granularity Stored in UTC if available, else in local time 1 microsecond granularity ChangeTime Stored in UTC 100 nanosecond granularity Stored in UTC 100 nanosecond granularity Not Supported Not Supported Stored in UTC if available, else in time 1 microsecond granularity LastWriteTime Stored in UTC 100 nanosecond granularity Stored in UTC 100 nanosecond granularity Stored in local time 2 second granularity Stored in UTC if available, else in local time 10 millisecond granularity Stored in UTC if available, else in local time 1 microsecond granularity <28> Section 2.1.1.4: The following table defines the support of file time stamps across various Windows file systems. More information can be found in section 6 of the File System Behavior Overview document [FSBO]. Timestamp ReFS NTFS FAT UDFS CreationTime Stored in UTC 100 nanosecond granularity Stored in UTC 100 nanosecond granularity Stored in local time 10 millisecond granularity Stored in UTC if available, else in local time 10 millisecond granularity Stored in UTC if available, else in local time 1 microsecond granularity LastAccessTime Stored in UTC 100 nanosecond granularity Updated at 60 minute granularity Stored in UTC 100 nanosecond granularity Updated at 60 minute granularity Stored in local time 1 day granularity Stored in UTC if available, else in local time 2 second granularity Stored in UTC if available, else in time 1 microsecond granularity
ChangeTime Stored in UTC 100 nanosecond granularity Stored in UTC 100 nanosecond granularity Not Supported Not Supported Stored in UTC if available, else in local time 1 microsecond granularity LastWriteTime Stored in UTC 100 nanosecond granularity Stored in UTC 100 nanosecond granularity Stored in local time 2 second granularity Stored in UTC if available, else in local time 10 millisecond granularity Stored in UTC if available, else in time 1 microsecond granularity <29> Section 2.1.1.4: The following table defines the support of file time stamps across various Windows file systems. More information can be found in section 6 of the File System Behavior Overview document [FSBO]. Timestamp ReFS NTFS FAT EXFAT UDFS CreationTime Stored in UTC 100 nanosecond granularity Stored in UTC 100 nanosecond granularity Stored in local time 10 millisecond granularity Stored in UTC if available, else in local time 10 millisecond granularity Stored in UTC if available, else in local time 1 microsecond granularity LastAccessTime Stored in UTC 100 nanosecond granularity Updated at 60 minute granularity Stored in UTC 100 nanosecond granularity Updated at 60 minute granularity Stored in local time 1 day granularity Stored in UTC if available, else in local time 2 second granularity Stored in UTC if available, else in local time 1 microsecond granularity ChangeTime Stored in UTC 100 nanosecond granularity Stored in UTC 100 nanosecond granularity Not Supported Not Supported Stored in UTC if available, else in local time 1 microsecond granularity LastWriteTime Stored in UTC 100 nanosecond granularity Stored in UTC 100 nanosecond granularity Stored in time 2 second granularity Stored in UTC if available, else in local time Stored in UTC if available, else in local time
10 millisecond granularity 1 microsecond granularity <30> Section 2.1.1.4: In Windows Vista, Windows Server 2008, Windows 7, Windows Server 2008 R2, Windows 8, Windows Server 2012, Windows 8.1, Windows Server 2012 R2, Windows 10, and Windows Server 2016, LastAccessTime updates are disabled by default in the ReFS and NTFS file systems. It is only updated when the file is closed. This behavior is controlled by the following registry key: HKLM\System\CurrentControlSet\Control\FileSystem\NtfsDisableLastAccessUpdate. A nonzero value means LastAccessTime updates are disabled. A value of zero means they are enabled. <31> Section 2.1.1.4: The following table defines the support of file time stamps across various Windows file systems. More information can be found in section 6 of the File System Behavior Overview document [FSBO]. Timestamp ReFS NTFS FAT UDFS CreationTime Stored in UTC 100 nanosecond granularity Stored in UTC 100 nanosecond granularity Stored in time 10 millisecond granularity Stored in UTC if available, else in time 10 millisecond granularity Stored in UTC if available, else in time 1 microsecond granularity LastAccessTime Stored in UTC 100 nanosecond granularity Updated at 60 minute granularity Stored in UTC 100 nanosecond granularity Updated at 60 minute granularity Stored in time 1 day granularity Stored in UTC if available, else in local time 2 second granularity Stored in UTC if available, else in local time 1 microsecond granularity ChangeTime Stored in UTC 100 nanosecond granularity Stored in UTC 100 nanosecond granularity Not Supported Not Supported Stored in UTC if available, else in local time 1 microsecond granularity LastWriteTime Stored in UTC 100 nanosecond granularity Stored in UTC 100 nanosecond granularity Stored in local time 2 second granularity Stored in UTC if available, else in local time 10 millisecond granularity Stored in UTC if available, else in local time 1 microsecond granularity <32> Section 2.1.1.4: Only NTFS implements EAs.
<126> Section 2.1.5.11.27: This algorithm is only implemented by NTFS and ReFS. The FAT, CDFS, and UDFS file systems always return 1. <127> Section 2.1.5.12.5: The following table defines what FileSystemAttributes flags, as defined in [MS-FSCC] section 2.5.1, are set by various Windows file systems and why they are set: ReFS NTFS FAT EXFAT UDFS CDFS FILE_SUPPORTS_USN_JOURNAL 0x02000000 Always Set Set if 3.0 format or higher volume FILE_SUPPORTS_OPEN_BY_FILE_ID 0x01000000 Always Set Always Set Set if volume mounted Always Set FILE_SUPPORTS_EXTENDED_ATTRIBUTES 0x00800000 Always Set FILE_SUPPORTS_HARD_LINKS 0x00400000 Always Set Always Set FILE_SUPPORTS_TRANSACTIONS 0x00200000 Set if 3.0 format or higher volume FILE_SEQUENTIAL_WRITE_ONCE 0x00100000 Set if volume not mounted FILE_READ_ONLY_VOLUME 0x00080000 Set if volume mounted Set if volume mounted read-only Set if volume mounted Set if volume mounted Set if volume mounted Always Set FILE_NAMED_STREAMS 0x00040000 Always Set Set if 2.0 format or higher FILE_SUPPORTS_ENCRYPTION 0x00020000 Set if 3.0 format or higher volume and encryption is enabled on the system FILE_SUPPORTS_OBJECT_IDS 0x00010000 Set if 3.0 format or higher volume
FILE_VOLUME_IS_COMPRESSED 0x00008000 FILE_SUPPORTS_REMOTE_STORAGE 0x00000100 FILE_SUPPORTS_REPARSE_POINTS 0x00000080 Always Set Set if 3.0 format or higher volume FILE_SUPPORTS_SPARSE_FILES 0x00000040 Set if 3.0 format or higher volume FILE_VOLUME_QUOTAS 0x00000020 Set if 3.0 format or higher volume FILE_FILE_COMPRESSION 0x00000010 Set if volume cluster size is 4K or less FILE_PERSISTENT_ACLS 0x00000008 Always Set Always Set FILE_UNICODE_ON_DISK 0x00000004 Always Set Always Set Always Set Always Set Always Set Set if Joliet Format FILE_CASE_PRESERVED_NAMES 0x00000002 Always Set Always Set Always Set Always Set Always Set FILE_CASE_SENSITIVE_SEARCH 0x00000001 Always Set Always Set Always Set Always Set <128> Section 2.1.5.12.5: The following table defines the MaximumComponentNameLength, as defined in [MS-FSCC] section 2.5.1, that is set by each file system: ReFS NTFS FAT EXFAT UDFS CDFS MaximumComponentNameLength Value 255 255 255 255 254 110 if Joliet Format 221 otherwise <129> Section 2.1.5.12.6: This is implemented only by the NTFS file system. <130> Section 2.1.5.12.8: ReFS does not implement object IDs. <131> Section 2.1.5.12.8: This is implemented only by the NTFS file system.
Protocol syntax refers to data elements (such as packets, structures, enumerations, and methods) as well as interfaces. Protocol revision refers to changes made to a protocol that affect the bits that are sent over the wire. The changes made to this document are listed in the following table. For more information, please contact . Section Tracking number (if applicable) and description Major change (Y or N) Change type Per Link 5365 : Updated the processing rules for duplicate information. Y Content update. Algorithm for Updating Duplicated Information 5365 : New Section. Y New content Creation of a New File 5365 : Updated the processing rules for duplicate information. Y Content update. Open of an Existing File 5365 : Updated the processing rules for duplicate information. Y Content update. Server Requests Closing an Open 5365 : Updated the processing rules for duplicate information. Y Content update. Directory Information Queries 5365 : Updated the processing rules for duplicate information. Y Content update. FileBothDirectoryInformation 5365 : Updated the processing rules for duplicate information. Y Content update. FileDirectoryInformation 5365 : Updated the processing Y Content update.
rules for duplicate information. FileFullDirectoryInformation 5365 : Updated the processing rules for duplicate information. Y Content update. FileIdBothDirectoryInformation 5365 : Updated the processing rules for duplicate information. Y Content update. FileIdFullDirectoryInformation 5365 : Updated the processing rules for duplicate information. Y Content update. FSCTL_SET_ENCRYPTION 5365 : Updated the processing rules for duplicate information. Y Content update. FileAllocationInformation 5365 : Updated the processing rules for duplicate information. Y Content update. FileBasicInformation 5365 : Updated the processing rules for duplicate information. Y Content update. FileEndOfFileInformation 5365 : Updated the processing for duplicate information. Y Content update. FileLinkInformation 5365 : Updated the processing rules for duplicate information. Y Content update.
Index A Abstract data model 19 21 19 14 16 19 18 20 10 21 21 16 13 10 Algorithms - common 46 25 26 47 26 26 22 24 48 23 29 22 27 46 26 28 24 9 C 9 246 Common algorithms 46 25 26 47 26 26 22 24 48 23 29 22 27 46 26 28 24 D Data model - abstract 19 21 19 14 16 19 18 20 10 21 21 16 13 10 E Examples 228 228 F 9 G 7 H Higher-layer triggered events byte-range 92 93 91 75 directory 149 81 file information 150 174 50 system information 162 202 94 224 205 216 50 information 224 226 70 security information 169