0xC0000004 IO_REPARSE_TAG_HSM2 0x80000006 Obsolete. Used by legacy Hierarchical Storage Manager Product. IO_REPARSE_TAG_DRIVER_EXTENDER 0x80000005 Home server drive extender.<3> 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_DFSR 0x80000012 Used by the DFS filter. The DFS is described in [MS-DFSC]. 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 . REPARSE_DATA_BUFFER The REPARSE_DATA_BUFFER data element stores data for a reparse point. This reparse data buffer MUST be used only with whose high bit is set to 1. This data element has two subtypes: and . 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 ReparseTag ReparseDataLength Reserved DataBuffer (variable) ... ReparseTag (4 bytes): A 32-bit unsigned integer value containing the reparse point tag that uniquely identifies the owner of the reparse point. ReparseDataLength (2 bytes): A 16-bit unsigned integer value containing the size, in bytes, of the reparse data in the DataBuffer member. Reserved (2 bytes): A 16-bit field. This field is reserved. This field SHOULD be set to 0, and MUST be ignored.
FSCTL_GET_RETRIEVAL_POINTERS Reply The FSCTL_GET_RETRIEVAL_POINTERS reply message returns the results of the as a variably–sized data element, RETRIEVAL_POINTERS_BUFFER, that specifies the allocation and location on disk of a specific file. The FSCTL_GET_RETRIEVAL_POINTERS reply returns the extent locations (that is, locations of allocated regions of disk space) of nonresident data. A file system MAY allow resident data, which is data that can be written to disk within the file's directory record. Because resident data requires no additional disk space allocation, no extent locations are associated with resident data.<22> The RETRIEVAL_POINTERS_BUFFER 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 ExtentCount Unused StartingVcn ... Extents (variable) ... ExtentCount (4 bytes): A 32-bit unsigned integer that contains the number of data elements in the Extents array. This number can be zero if there are no clusters allocated at (or beyond) the specified StartingVcn. Unused (4 bytes): Reserved for alignment. This field can contain any value and MUST be ignored. StartingVcn (8 bytes): A 64-bit signed integer that contains the starting virtual cluster number (VCN) returned by the FSCTL_GET_RETRIEVAL_POINTERS reply. This is not necessarily the VCN requested by the FSCTL_GET_RETRIEVAL_POINTERS request, as the file system driver might return the starting VCN of the extent containing the requested starting VCN. This value MUST be greater than or equal to 0. Extents (variable): An array of zero or more EXTENTS data elements. For the number of EXTENTS data elements in the array, see ExtentCount. EXTENTS The EXTENTS 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 NextVcn ... Lcn
Error code Meaning STATUS_BUFFER_TOO_SMALL 0xC0000023 The input buffer is too small to contain a FILE_REGION_INPUT structure, or the output buffer is too small to contain a FILE_REGION_OUTPUT structure. STATUS_BUFFER_OVERFLOW 0x80000005 The output buffer was filled before all the desired regions for this file were returned. STATUS_INVALID_PARAMETER 0xC000000D A specified file region is invalid, or the specified desired usage flag is invalid, or the given handle is not for a file (but for a directory or volume instead). FILE_REGION_INFO The FILE_REGION_INFO structure contains a computed region of a file based on a desired usage. This structure is used to store region information for the reply message, with the FILE_REGION_OUTPUT structure containing one or more FILE_REGION_INFO structures. A FILE_REGION_INFO 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 FileOffset ... Length ... DesiredUsage Reserved FileOffset (8 bytes): A 64-bit signed integer that contains the file offset, in bytes, of the region. Length (8 bytes): A 64-bit signed integer that contains the size, in bytes, of the region. DesiredUsage (4 bytes): A 32-bit unsigned integer that indicates the usage for the given region of the file. The valid values are defined in section . Reserved (4 bytes): A 32-bit unsigned integer field that is reserved. This field SHOULD be set to 0x00000000 and MUST be ignored. FSCTL_QUERY_ON_DISK_VOLUME_INFO Request This message requests UDF-specific volume information for the volume that contains the file or directory associated with the handle on which this FSCTL was invoked. This message does not contain any additional data elements. This FSCTL is only valid on UDF file systems. All other File Systems will treat this as an invalid FSCTL. For information regarding UDF, see .
Value Meaning COMPRESSION_FORMAT_NONE 0x0000 The file or directory is not compressed. COMPRESSION_FORMAT_DEFAULT 0x0001 The file or directory is compressed by using the default compression algorithm.<39> COMPRESSION_FORMAT_LZNT1 0x0002 The file or directory is compressed by using the LZNT1 compression algorithm. For more information, see . All other values Reserved for future use and MUST NOT be used. The actual file or directory compression performed when a server receives a request for COMPRESSION_FORMAT_DEFAULT and COMPRESSION_FORMAT_LZNT1 is If the file system of the volume containing the specified file or directory does not support per-file or per-directory compression, the request MUST NOT succeed. The error code returned in this situation is specified in section . FSCTL_SET_COMPRESSION 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 FSCTL MUST be STATUS_SUCCESS or one of the following. Error code Meaning STATUS_INVALID_PARAMETER 0xC000000D The input buffer length is less than 2, or the handle is not to a file or directory, or the requested CompressionState is not one of the values listed in the table for CompressionState in FSCTL_SET_COMPRESSION Request (section 2.3.49). STATUS_INVALID_DEVICE_REQUEST 0xC0000010 The volume does not allow compression. STATUS_DISK_FULL 0xC00007F The disk is full. FSCTL_GET_INTEGRITY_INFORMATION_Request The FSCTL_GET_INTEGRITY_INFORMATION_Request message requests that the server return the current integrity state of the file or directory associated with the handle on which this FSCTL is invoked.<41> If the file system of the volume containing the specified file or directory does not support the use of integrity, the request will not succeed. The error code returned in this situation varies, depending on the file system. This message does not contain additional data elements.
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. 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.<89><90> 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 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_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.
entries named ".." (synonymous with the parent directory), an implementation MAY set this field to 0 for the entry named "..", and this value MUST be ignored.<105> FileName (variable): A sequence of Unicode characters containing the file name. When working with this field, use FileNameLength to determine the length of the file name rather than assuming the presence of a trailing null delimiter. Dot directory names are valid for this field. For more details, see section 2.1.5.1. 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. FileIdFullDirectoryInformation This information class is used in directory enumeration to return detailed information about the contents of a directory. This information class returns a list that contains a FILE_ID_FULL_DIR_INFORMATION data element for each file or directory within the target directory. This list MUST reflect the presence of a subdirectory named "." (synonymous with the target directory itself) within the target directory and one named ".." (synonymous with the parent directory of the target directory). For more details, see section . When multiple FILE_ID_FULL_DIR_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_ID_FULL_DIR_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 FileIndex CreationTime ... LastAccessTime ... LastWriteTime ...
NamedPipeEnd field is set to FILE_PIPE_SERVER_END, the WriteQuotaAvailable field is the remaining OutboundQuota field available. NamedPipeState (4 bytes): A 32-bit unsigned integer that contains the named pipe state that specifies the connection status for the named pipe. MUST be one of the following. Value Meaning FILE_PIPE_DISCONNECTED_STATE 0x00000001 Named pipe is disconnected. FILE_PIPE_LISTENING_STATE 0x00000002 Named pipe is waiting to establish a connection. FILE_PIPE_CONNECTED_STATE 0x00000003 Named pipe is connected. FILE_PIPE_CLOSING_STATE 0x00000004 Named pipe is in the process of being closed. NamedPipeEnd (4 bytes): A 32-bit unsigned integer that contains the type of the named pipe end, which specifies whether this is the client or the server side of a named pipe. MUST be one of the following. Value Meaning FILE_PIPE_CLIENT_END 0x00000000 This is the client end of a named pipe. FILE_PIPE_SERVER_END 0x00000001 This is the server end of a named pipe. 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. For more information on named pipes, please see . FilePipeRemoteInformation This information class is used to query information on a named pipe that is associated with the client end of the pipe that is being queried. Remote information is not available for local pipes or for the server end of a remote pipe. Therefore, this information class is usable only by the client to retrieve information associated with its end of the pipe. A FILE_PIPE_REMOTE_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 CollectDataTime
Index A 40 23 14 B 40 26 C 192 77 26 15 D Data elements 25 21 23 15 26 15 80 Details 15 E 170 43 53 F 42 Fields 15 14 14 168 98 155 100 101 102 117 144 89 90 90 118 131 25 25 153 21 21 22 136 137 142 142 65 145 146 78 100 102 103 104 104 106 108 109 111 112 112 155 158 167 160 161 162 162 163 165 165 113 115 117 119 121 124 127 FileLinkInformation packet ( 127, 128, 129) 129 130 132 133 134 135 138 139 141 145 147 148 149 149 150 151 32 152 26 28 28 29 29