.. | .. |
---|
35 | 35 | * below). Additional detail on less common ones can be found in MS-FSCC |
---|
36 | 36 | * section 2.3. |
---|
37 | 37 | */ |
---|
| 38 | + |
---|
| 39 | +/* |
---|
| 40 | + * FSCTL values are 32 bits and are constructed as |
---|
| 41 | + * <device 16bits> <access 2bits> <function 12bits> <method 2bits> |
---|
| 42 | + */ |
---|
| 43 | +/* Device */ |
---|
| 44 | +#define FSCTL_DEVICE_DFS (0x0006 << 16) |
---|
| 45 | +#define FSCTL_DEVICE_FILE_SYSTEM (0x0009 << 16) |
---|
| 46 | +#define FSCTL_DEVICE_NAMED_PIPE (0x0011 << 16) |
---|
| 47 | +#define FSCTL_DEVICE_NETWORK_FILE_SYSTEM (0x0014 << 16) |
---|
| 48 | +#define FSCTL_DEVICE_MASK 0xffff0000 |
---|
| 49 | +/* Access */ |
---|
| 50 | +#define FSCTL_DEVICE_ACCESS_FILE_ANY_ACCESS (0x00 << 14) |
---|
| 51 | +#define FSCTL_DEVICE_ACCESS_FILE_READ_ACCESS (0x01 << 14) |
---|
| 52 | +#define FSCTL_DEVICE_ACCESS_FILE_WRITE_ACCESS (0x02 << 14) |
---|
| 53 | +#define FSCTL_DEVICE_ACCESS_FILE_READ_WRITE_ACCESS (0x03 << 14) |
---|
| 54 | +#define FSCTL_DEVICE_ACCESS_MASK 0x0000c000 |
---|
| 55 | +/* Function */ |
---|
| 56 | +#define FSCTL_DEVICE_FUNCTION_MASK 0x00003ffc |
---|
| 57 | +/* Method */ |
---|
| 58 | +#define FSCTL_DEVICE_METHOD_BUFFERED 0x00 |
---|
| 59 | +#define FSCTL_DEVICE_METHOD_IN_DIRECT 0x01 |
---|
| 60 | +#define FSCTL_DEVICE_METHOD_OUT_DIRECT 0x02 |
---|
| 61 | +#define FSCTL_DEVICE_METHOD_NEITHER 0x03 |
---|
| 62 | +#define FSCTL_DEVICE_METHOD_MASK 0x00000003 |
---|
| 63 | + |
---|
| 64 | + |
---|
38 | 65 | #define FSCTL_DFS_GET_REFERRALS 0x00060194 |
---|
39 | 66 | #define FSCTL_DFS_GET_REFERRALS_EX 0x000601B0 |
---|
40 | 67 | #define FSCTL_REQUEST_OPLOCK_LEVEL_1 0x00090000 |
---|
.. | .. |
---|
76 | 103 | #define FSCTL_SET_ZERO_ON_DEALLOC 0x00090194 /* BB add struct */ |
---|
77 | 104 | #define FSCTL_SET_SHORT_NAME_BEHAVIOR 0x000901B4 /* BB add struct */ |
---|
78 | 105 | #define FSCTL_GET_INTEGRITY_INFORMATION 0x0009027C |
---|
79 | | -#define FSCTL_QUERY_ALLOCATED_RANGES 0x000940CF /* BB add struct */ |
---|
| 106 | +#define FSCTL_GET_RETRIEVAL_POINTERS_AND_REFCOUNT 0x000903d3 |
---|
| 107 | +#define FSCTL_GET_RETRIEVAL_POINTER_COUNT 0x0009042b |
---|
| 108 | +#define FSCTL_QUERY_ALLOCATED_RANGES 0x000940CF |
---|
80 | 109 | #define FSCTL_SET_DEFECT_MANAGEMENT 0x00098134 /* BB add struct */ |
---|
81 | 110 | #define FSCTL_FILE_LEVEL_TRIM 0x00098208 /* BB add struct */ |
---|
82 | 111 | #define FSCTL_DUPLICATE_EXTENTS_TO_FILE 0x00098344 |
---|
.. | .. |
---|
117 | 146 | #define IO_REPARSE_APPXSTREAM 0xC0000014 |
---|
118 | 147 | /* NFS symlinks, Win 8/SMB3 and later */ |
---|
119 | 148 | #define IO_REPARSE_TAG_NFS 0x80000014 |
---|
| 149 | +/* |
---|
| 150 | + * AzureFileSync - see |
---|
| 151 | + * https://docs.microsoft.com/en-us/azure/storage/files/storage-sync-cloud-tiering |
---|
| 152 | + */ |
---|
| 153 | +#define IO_REPARSE_TAG_AZ_FILE_SYNC 0x8000001e |
---|
| 154 | +/* WSL reparse tags */ |
---|
| 155 | +#define IO_REPARSE_TAG_LX_SYMLINK 0xA000001D |
---|
| 156 | +#define IO_REPARSE_TAG_AF_UNIX 0x80000023 |
---|
| 157 | +#define IO_REPARSE_TAG_LX_FIFO 0x80000024 |
---|
| 158 | +#define IO_REPARSE_TAG_LX_CHR 0x80000025 |
---|
| 159 | +#define IO_REPARSE_TAG_LX_BLK 0x80000026 |
---|
120 | 160 | |
---|
121 | 161 | /* fsctl flags */ |
---|
122 | 162 | /* If Flags is set to this value, the request is an FSCTL not ioctl request */ |
---|