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