1 // No copyright claimed in this file - do what you want with it.
3 #ifndef BTRFSIOCTL_H_DEFINED
4 #define BTRFSIOCTL_H_DEFINED
6 #define FSCTL_BTRFS_GET_FILE_IDS CTL_CODE(FILE_DEVICE_UNKNOWN, 0x829, METHOD_OUT_DIRECT, FILE_ANY_ACCESS)
7 #define FSCTL_BTRFS_CREATE_SUBVOL CTL_CODE(FILE_DEVICE_UNKNOWN, 0x82a, METHOD_IN_DIRECT, FILE_ANY_ACCESS)
8 #define FSCTL_BTRFS_CREATE_SNAPSHOT CTL_CODE(FILE_DEVICE_UNKNOWN, 0x82b, METHOD_IN_DIRECT, FILE_ANY_ACCESS)
9 #define FSCTL_BTRFS_GET_INODE_INFO CTL_CODE(FILE_DEVICE_UNKNOWN, 0x82c, METHOD_OUT_DIRECT, FILE_ANY_ACCESS)
10 #define FSCTL_BTRFS_SET_INODE_INFO CTL_CODE(FILE_DEVICE_UNKNOWN, 0x82d, METHOD_IN_DIRECT, FILE_ANY_ACCESS)
11 #define FSCTL_BTRFS_GET_DEVICES CTL_CODE(FILE_DEVICE_UNKNOWN, 0x82e, METHOD_OUT_DIRECT, FILE_ANY_ACCESS)
12 #define FSCTL_BTRFS_GET_USAGE CTL_CODE(FILE_DEVICE_UNKNOWN, 0x82f, METHOD_OUT_DIRECT, FILE_ANY_ACCESS)
13 #define FSCTL_BTRFS_START_BALANCE CTL_CODE(FILE_DEVICE_UNKNOWN, 0x830, METHOD_IN_DIRECT, FILE_ANY_ACCESS)
14 #define FSCTL_BTRFS_QUERY_BALANCE CTL_CODE(FILE_DEVICE_UNKNOWN, 0x831, METHOD_OUT_DIRECT, FILE_ANY_ACCESS)
15 #define FSCTL_BTRFS_PAUSE_BALANCE CTL_CODE(FILE_DEVICE_UNKNOWN, 0x832, METHOD_IN_DIRECT, FILE_ANY_ACCESS)
16 #define FSCTL_BTRFS_RESUME_BALANCE CTL_CODE(FILE_DEVICE_UNKNOWN, 0x833, METHOD_IN_DIRECT, FILE_ANY_ACCESS)
17 #define FSCTL_BTRFS_STOP_BALANCE CTL_CODE(FILE_DEVICE_UNKNOWN, 0x834, METHOD_IN_DIRECT, FILE_ANY_ACCESS)
18 #define FSCTL_BTRFS_ADD_DEVICE CTL_CODE(FILE_DEVICE_UNKNOWN, 0x835, METHOD_IN_DIRECT, FILE_ANY_ACCESS)
19 #define FSCTL_BTRFS_REMOVE_DEVICE CTL_CODE(FILE_DEVICE_UNKNOWN, 0x836, METHOD_IN_DIRECT, FILE_ANY_ACCESS)
20 #define IOCTL_BTRFS_QUERY_FILESYSTEMS CTL_CODE(FILE_DEVICE_UNKNOWN, 0x837, METHOD_OUT_DIRECT, FILE_ANY_ACCESS)
21 #define FSCTL_BTRFS_GET_UUID CTL_CODE(FILE_DEVICE_UNKNOWN, 0x838, METHOD_OUT_DIRECT, FILE_ANY_ACCESS)
33 } btrfs_create_snapshot
;
58 } btrfs_set_inode_info
;
66 ULONG partition_number
;
82 btrfs_usage_device devices
[1];
85 #define BTRFS_BALANCE_OPTS_ENABLED 0x001
86 #define BTRFS_BALANCE_OPTS_PROFILES 0x002
87 #define BTRFS_BALANCE_OPTS_DEVID 0x004
88 #define BTRFS_BALANCE_OPTS_DRANGE 0x008
89 #define BTRFS_BALANCE_OPTS_VRANGE 0x010
90 #define BTRFS_BALANCE_OPTS_LIMIT 0x020
91 #define BTRFS_BALANCE_OPTS_STRIPES 0x040
92 #define BTRFS_BALANCE_OPTS_USAGE 0x080
93 #define BTRFS_BALANCE_OPTS_CONVERT 0x100
94 #define BTRFS_BALANCE_OPTS_SOFT 0x200
96 #define BLOCK_FLAG_SINGLE 0x1000000000000 // only used in balance
108 UINT16 stripes_start
;
113 } btrfs_balance_opts
;
115 #define BTRFS_BALANCE_STOPPED 0
116 #define BTRFS_BALANCE_RUNNING 1
117 #define BTRFS_BALANCE_PAUSED 2
118 #define BTRFS_BALANCE_REMOVAL 4
119 #define BTRFS_BALANCE_ERROR 8
126 btrfs_balance_opts data_opts
;
127 btrfs_balance_opts metadata_opts
;
128 btrfs_balance_opts system_opts
;
129 } btrfs_query_balance
;
132 btrfs_balance_opts opts
[3];
133 } btrfs_start_balance
;
139 } btrfs_filesystem_device
;
145 btrfs_filesystem_device device
;