1 /*
2    Unix SMB/CIFS implementation.
3    NT ioctl code constants
4    Copyright (C) Andrew Tridgell              2002
5 
6    This program is free software; you can redistribute it and/or modify
7    it under the terms of the GNU General Public License as published by
8    the Free Software Foundation; either version 3 of the License, or
9    (at your option) any later version.
10 
11    This program is distributed in the hope that it will be useful,
12    but WITHOUT ANY WARRANTY; without even the implied warranty of
13    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14    GNU General Public License for more details.
15 
16    You should have received a copy of the GNU General Public License
17    along with this program.  If not, see <http://www.gnu.org/licenses/>.
18 */
19 
20 #ifndef _NTIOCTL_H
21 #define _NTIOCTL_H
22 
23 #define IO_REPARSE_TAG_SYMLINK	     0xA000000C
24 #define SYMLINK_FLAG_RELATIVE	     0x00000001
25 
26 #define IO_REPARSE_TAG_MOUNT_POINT   0xA0000003
27 #define IO_REPARSE_TAG_HSM           0xC0000004
28 #define IO_REPARSE_TAG_SIS           0x80000007
29 #define IO_REPARSE_TAG_DFS	     0x8000000A
30 #define IO_REPARSE_TAG_NFS	     0x80000014
31 
32 /* Sub-types for IO_REPARSE_TAG_NFS */
33 #define NFS_SPECFILE_LNK	     0x00000000014B4E4C
34 #define NFS_SPECFILE_CHR	     0x0000000000524843
35 #define NFS_SPECFILE_BLK	     0x00000000004B4C42
36 #define NFS_SPECFILE_FIFO	     0x000000004F464946
37 #define NFS_SPECFILE_SOCK	     0x000000004B434F53
38 
39 /* For FSCTL_GET_SHADOW_COPY_DATA ...*/
40 typedef char SHADOW_COPY_LABEL[25]; /* sizeof("@GMT-2004.02.18-15.44.00") + 1 */
41 
42 struct shadow_copy_data {
43 	/* Total number of shadow volumes currently mounted */
44 	uint32_t num_volumes;
45 	/* Concatenated list of labels */
46 	SHADOW_COPY_LABEL *labels;
47 };
48 
49 
50 #endif /* _NTIOCTL_H */
51