2.3 FSCTL Structures
A process invokes an FSCTL on a handle to perform an action against the file or directory associated with the handle. When a server receives an FSCTL request, it SHOULD use the information in the request, which includes a handle and, optionally, an input data buffer, to perform the requested action. How a server performs the action requested by an FSCTL is implementation-dependent.<16>
The following table specifies the system defined generic FSCTLs that are permitted to be invoked across the network. Generic FSCTLs are used by the local file systems or by multiple components within the system. Any application, service, or driver can define private FSCTLs. Most private FSCTLs are used locally in the internal driver stacks and do not flow over the wire. However, if a component allows its private FSCTLs to flow over the wire, that component is responsible for ensuring the FSCTLs and associated data structures are documented. Examples of such private FSCTLs can be found in [MS-SMB2] and [MS-DFSC].
FSCTL name |
FSCTL function number |
---|---|
FSCTL_CREATE_OR_GET_OBJECT_ID |
0X900C0 |
FSCTL_DELETE_OBJECT_ID |
0X900A0 |
FSCTL_DELETE_REPARSE_POINT |
0X900AC |
FSCTL_DUPLICATE_EXTENTS_TO_FILE |
0X98344 |
FSCTL_DUPLICATE_EXTENTS_TO_FILE_EX |
0x983E8 |
FSCTL_FILESYSTEM_GET_STATISTICS |
0X90060 |
FSCTL_FILE_LEVEL_TRIM |
0X98208 |
FSCTL_FIND_FILES_BY_SID |
0X9008F |
FSCTL_GET_COMPRESSION |
0X9003C |
FSCTL_GET_INTEGRITY_INFORMATION |
0X9027C |
FSCTL_GET_NTFS_VOLUME_DATA |
0X90064 |
FSCTL_GET_REFS_VOLUME_DATA |
0X902D8 |
FSCTL_GET_OBJECT_ID |
0X9009C |
FSCTL_GET_REPARSE_POINT |
0X900A8 |
FSCTL_GET_RETRIEVAL_POINTER_COUNT |
0x9042B |
FSCTL_GET_RETRIEVAL_POINTERS |
0X90073 |
FSCTL_GET_RETRIEVAL_POINTERS_AND_REFCOUNT |
0x903D3 |
FSCTL_IS_PATHNAME_VALID |
0X9002C |
FSCTL_LMR_SET_LINK_TRACKING_INFORMATION |
0X1400EC |
FSCTL_MARK_HANDLE |
0x900FC |
FSCTL_OFFLOAD_READ |
0X94264 |
FSCTL_OFFLOAD_WRITE |
0X98268 |
FSCTL_PIPE_PEEK |
0X11400C |
FSCTL_PIPE_TRANSCEIVE |
0X11C017 |
FSCTL_PIPE_WAIT |
0X110018 |
FSCTL_QUERY_ALLOCATED_RANGES |
0X940CF |
FSCTL_QUERY_FAT_BPB |
0X90058 |
FSCTL_QUERY_FILE_REGIONS |
0X90284 |
FSCTL_QUERY_ON_DISK_VOLUME_INFO |
0X9013C |
FSCTL_QUERY_SPARING_INFO |
0X90138 |
FSCTL_READ_FILE_USN_DATA |
0X900EB |
FSCTL_RECALL_FILE |
0X90117 |
FSCTL_REFS_STREAM_SNAPSHOT_MANAGEMENT |
0x90440 |
FSCTL_SET_COMPRESSION |
0X9C040 |
FSCTL_SET_DEFECT_MANAGEMENT |
0X98134 |
FSCTL_SET_ENCRYPTION |
0X900D7 |
FSCTL_SET_INTEGRITY_INFORMATION |
0X9C280 |
FSCTL_SET_INTEGRITY_INFORMATION_EX |
0x90380 |
FSCTL_SET_OBJECT_ID |
0X90098 |
FSCTL_SET_OBJECT_ID_EXTENDED |
0X900BC |
FSCTL_SET_REPARSE_POINT |
0X900A4 |
FSCTL_SET_SPARSE |
0X900C4 |
FSCTL_SET_ZERO_DATA |
0X980C8 |
FSCTL_SET_ZERO_ON_DEALLOCATION |
0X90194 |
FSCTL_SIS_COPYFILE |
0X90100 |
FSCTL_WRITE_USN_CLOSE_RECORD |
0X900EF |