summaryrefslogtreecommitdiff
path: root/source4/libcli/smb2/smb2_calls.h
diff options
context:
space:
mode:
authorAndrew Tridgell <tridge@samba.org>2005-11-11 12:37:16 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 13:46:12 -0500
commit2e753f851885930000eadbd4b69660d85124c716 (patch)
tree078827c8b09c6673892f5b53560875fda14f22b9 /source4/libcli/smb2/smb2_calls.h
parent006da4c52add1e448eb3f72896ca37d644294a24 (diff)
downloadsamba-2e753f851885930000eadbd4b69660d85124c716.tar.gz
samba-2e753f851885930000eadbd4b69660d85124c716.tar.bz2
samba-2e753f851885930000eadbd4b69660d85124c716.zip
r11679: opening/creating files in SMB2 now works. Lots of unknown parameters
in the call tho. (This used to be commit 548fbd86b3b114493943b50669bdcba2f4ed87f2)
Diffstat (limited to 'source4/libcli/smb2/smb2_calls.h')
-rw-r--r--source4/libcli/smb2/smb2_calls.h47
1 files changed, 46 insertions, 1 deletions
diff --git a/source4/libcli/smb2/smb2_calls.h b/source4/libcli/smb2/smb2_calls.h
index 523f314cbf..8b68751df3 100644
--- a/source4/libcli/smb2/smb2_calls.h
+++ b/source4/libcli/smb2/smb2_calls.h
@@ -71,6 +71,51 @@ struct smb2_tree_connect {
uint32_t unknown2; /* 0x00 */
uint32_t unknown3; /* 0x00 */
uint32_t unknown4; /* 0x1f01ff */ /* capabilities?? */
- uint64_t tid;
+ uint32_t tid;
} out;
};
+
+/*
+ file handles in SMB2 are 20 bytes, like RPC handles
+*/
+struct smb2_handle {
+ uint8_t data[20];
+};
+
+struct smb2_create {
+ struct {
+ uint32_t unknown1; /* 0x09000039 */
+ uint32_t unknown2; /* 2 */
+ uint32_t unknown3[4];
+ uint32_t access_mask;
+ uint32_t file_attr;
+ uint32_t unknown4;
+ uint32_t open_disposition;
+ uint32_t unknown5;
+ /* ofs/len of name here, 16 bits */
+ uint32_t unknown6;
+ const char *fname;
+ uint32_t unknown7;
+ uint32_t unknown8;
+ uint32_t unknown9;
+ uint32_t unknown10;
+ uint64_t unknown11;
+ } in;
+
+ struct {
+ uint32_t unknown1;
+ uint32_t unknown2;
+ NTTIME create_time;
+ NTTIME access_time;
+ NTTIME write_time;
+ NTTIME change_time;
+ uint32_t unknown3;
+ uint32_t unknown4;
+ uint32_t unknown5;
+ uint32_t unknown6;
+ uint32_t unknown7;
+ struct smb2_handle handle;
+ uint32_t unknown8[2];
+ } out;
+};
+