libcli/smb: SMB 3.0.2: define SMB2_WRITEFLAG_WRITE_UNBUFFERED
[sharpe/samba-autobuild/.git] / libcli / smb / smb2_constants.h
index 1a6c5ad16e0891a8c0bc4bf8a7088e7a2ef299d8..7ebff8d5c07eb4f44fd4df7c215fd6501f2e4482 100644 (file)
 #define SMB2_HDR_FLAG_ASYNC     0x02
 #define SMB2_HDR_FLAG_CHAINED   0x04
 #define SMB2_HDR_FLAG_SIGNED    0x08
+#define SMB2_HDR_FLAG_PRIORITY_MASK 0x70
 #define SMB2_HDR_FLAG_DFS       0x10000000
 #define SMB2_HDR_FLAG_REPLAY_OPERATION 0x20000000
 
+#define SMB2_PRIORITY_MASK_TO_VALUE(__m) (((__m) & SMB2_HDR_FLAG_PRIORITY_MASK) >> 4)
+#define SMB2_PRIORITY_VALUE_TO_MASK(__v) (((__v) << 4) & SMB2_HDR_FLAG_PRIORITY_MASK)
+
 /* SMB2 opcodes */
-#define SMB2_OP_NEGPROT   0x00
-#define SMB2_OP_SESSSETUP 0x01
-#define SMB2_OP_LOGOFF    0x02
-#define SMB2_OP_TCON      0x03
-#define SMB2_OP_TDIS      0x04
-#define SMB2_OP_CREATE    0x05
-#define SMB2_OP_CLOSE     0x06
-#define SMB2_OP_FLUSH     0x07
-#define SMB2_OP_READ      0x08
-#define SMB2_OP_WRITE     0x09
-#define SMB2_OP_LOCK      0x0a
-#define SMB2_OP_IOCTL     0x0b
-#define SMB2_OP_CANCEL    0x0c
-#define SMB2_OP_KEEPALIVE 0x0d
-#define SMB2_OP_FIND      0x0e
-#define SMB2_OP_NOTIFY    0x0f
-#define SMB2_OP_GETINFO   0x10
-#define SMB2_OP_SETINFO   0x11
-#define SMB2_OP_BREAK     0x12
+#define SMB2_OP_NEGPROT                0x00
+#define SMB2_OP_SESSSETUP      0x01
+#define SMB2_OP_LOGOFF         0x02
+#define SMB2_OP_TCON           0x03
+#define SMB2_OP_TDIS           0x04
+#define SMB2_OP_CREATE         0x05
+#define SMB2_OP_CLOSE          0x06
+#define SMB2_OP_FLUSH          0x07
+#define SMB2_OP_READ           0x08
+#define SMB2_OP_WRITE          0x09
+#define SMB2_OP_LOCK           0x0a
+#define SMB2_OP_IOCTL          0x0b
+#define SMB2_OP_CANCEL         0x0c
+#define SMB2_OP_KEEPALIVE      0x0d
+#define SMB2_OP_QUERY_DIRECTORY        0x0e
+#define SMB2_OP_NOTIFY         0x0f
+#define SMB2_OP_GETINFO                0x10
+#define SMB2_OP_SETINFO                0x11
+#define SMB2_OP_BREAK          0x12
 
 #define SMB2_MAGIC 0x424D53FE /* 0xFE 'S' 'M' 'B' */
 
 #define SMB3_DIALECT_REVISION_300       0x0300
 #define SMB3_DIALECT_REVISION_302       0x0302
 #define SMB3_DIALECT_REVISION_310       0x0310
+#define SMB3_DIALECT_REVISION_311       0x0311
 #define SMB2_DIALECT_REVISION_2FF       0x02FF
 
 /* SMB2 negotiate security_mode */
 
 #define SMB2_CLOSE_FLAGS_FULL_INFORMATION (0x01)
 
+#define SMB2_READFLAG_READ_UNBUFFERED  0x01
+
 #define SMB2_WRITEFLAG_WRITE_THROUGH   0x00000001
+#define SMB2_WRITEFLAG_WRITE_UNBUFFERED        0x00000002
 
 /* 2.2.31 SMB2 IOCTL Request */
 #define SMB2_IOCTL_FLAG_IS_FSCTL               0x00000001