|
@@ -1,7 +1,7 @@
|
|
|
/*
|
|
|
* fs/cifs/smbfsctl.h: SMB, CIFS, SMB2 FSCTL definitions
|
|
|
*
|
|
|
- * Copyright (c) International Business Machines Corp., 2002,2009
|
|
|
+ * Copyright (c) International Business Machines Corp., 2002,2013
|
|
|
* Author(s): Steve French (sfrench@us.ibm.com)
|
|
|
*
|
|
|
* This library is free software; you can redistribute it and/or modify
|
|
@@ -22,7 +22,7 @@
|
|
|
/* IOCTL information */
|
|
|
/*
|
|
|
* List of ioctl/fsctl function codes that are or could be useful in the
|
|
|
- * future to remote clients like cifs or SMB2 client. There is probably
|
|
|
+ * future to remote clients like cifs or SMB2/SMB3 client. This is probably
|
|
|
* a slightly larger set of fsctls that NTFS local filesystem could handle,
|
|
|
* including the seven below that we do not have struct definitions for.
|
|
|
* Even with protocol definitions for most of these now available, we still
|
|
@@ -30,7 +30,13 @@
|
|
|
* remotely. Some of the following, such as the encryption/compression ones
|
|
|
* could be invoked from tools via a specialized hook into the VFS rather
|
|
|
* than via the standard vfs entry points
|
|
|
+ *
|
|
|
+ * See MS-SMB2 Section 2.2.31 (last checked June 2013, all of that list are
|
|
|
+ * below). Additional detail on less common ones can be found in MS-FSCC
|
|
|
+ * section 2.3.
|
|
|
*/
|
|
|
+#define FSCTL_DFS_GET_REFERRALS 0x00060194
|
|
|
+#define FSCTL_DFS_GET_REFERRALS_EX 0x000601B0
|
|
|
#define FSCTL_REQUEST_OPLOCK_LEVEL_1 0x00090000
|
|
|
#define FSCTL_REQUEST_OPLOCK_LEVEL_2 0x00090004
|
|
|
#define FSCTL_REQUEST_BATCH_OPLOCK 0x00090008
|
|
@@ -71,14 +77,31 @@
|
|
|
#define FSCTL_SET_SHORT_NAME_BEHAVIOR 0x000901B4 /* BB add struct */
|
|
|
#define FSCTL_QUERY_ALLOCATED_RANGES 0x000940CF /* BB add struct */
|
|
|
#define FSCTL_SET_DEFECT_MANAGEMENT 0x00098134 /* BB add struct */
|
|
|
+#define FSCTL_FILE_LEVEL_TRIM 0x00098208 /* BB add struct */
|
|
|
#define FSCTL_SIS_LINK_FILES 0x0009C104
|
|
|
#define FSCTL_PIPE_PEEK 0x0011400C /* BB add struct */
|
|
|
#define FSCTL_PIPE_TRANSCEIVE 0x0011C017 /* BB add struct */
|
|
|
/* strange that the number for this op is not sequential with previous op */
|
|
|
#define FSCTL_PIPE_WAIT 0x00110018 /* BB add struct */
|
|
|
+/* Enumerate previous versions of a file */
|
|
|
+#define FSCTL_SRV_ENUMERATE_SNAPSHOTS 0x00144064
|
|
|
+/* Retrieve an opaque file reference for server-side data movement ie copy */
|
|
|
+#define FSCTL_SRV_REQUEST_RESUME_KEY 0x00140078
|
|
|
+#define FSCTL_LMR_REQUEST_RESILIENCY 0x001401D4 /* BB add struct */
|
|
|
#define FSCTL_LMR_GET_LINK_TRACK_INF 0x001400E8 /* BB add struct */
|
|
|
#define FSCTL_LMR_SET_LINK_TRACK_INF 0x001400EC /* BB add struct */
|
|
|
+#define FSCTL_VALIDATE_NEGOTIATE_INFO 0x00140204 /* BB add struct */
|
|
|
+/* Perform server-side data movement */
|
|
|
+#define FSCTL_SRV_COPYCHUNK 0x001440F2
|
|
|
+#define FSCTL_SRV_COPYCHUNK_WRITE 0x001480F2
|
|
|
+#define FSCTL_QUERY_NETWORK_INTERFACE_INFO 0x001401FC /* BB add struct */
|
|
|
+#define FSCTL_SRV_READ_HASH 0x001441BB /* BB add struct */
|
|
|
|
|
|
#define IO_REPARSE_TAG_MOUNT_POINT 0xA0000003
|
|
|
#define IO_REPARSE_TAG_HSM 0xC0000004
|
|
|
#define IO_REPARSE_TAG_SIS 0x80000007
|
|
|
+
|
|
|
+/* fsctl flags */
|
|
|
+/* If Flags is set to this value, the request is an FSCTL not ioctl request */
|
|
|
+#define SMB2_0_IOCTL_IS_FSCTL 0x00000001
|
|
|
+
|