3 import "server_id.idl";
6 import "smb2_lease_struct.idl";
10 pointer_default(unique)
15 typedef [enum16bit] enum {
16 SHARE_MODE_ENTRY_OP_TYPE_NONE = 0,
17 SHARE_MODE_ENTRY_OP_TYPE_EXCLUSIVE = 1,
18 SHARE_MODE_ENTRY_OP_TYPE_BATCH_WITHOUT_EXCLUSIVE = 2,
19 SHARE_MODE_ENTRY_OP_TYPE_BATCH = 3,
20 SHARE_MODE_ENTRY_OP_TYPE_LEVEL_II = 4,
21 SHARE_MODE_ENTRY_OP_TYPE_LEASE = 0x100
22 } share_mode_entry_op_type;
24 typedef [public] struct {
27 share_mode_entry_op_type op_type;
29 smb2_lease_key lease_key;
32 uint32 private_options;
40 * In-memory flag indicating a non-existing pid. We don't want
41 * to store this share_mode_entry on disk.
43 [skip] boolean8 stale;
46 typedef [public] struct {
48 security_token *delete_nt_token;
49 security_unix_token *delete_token;
52 typedef [public,bitmap16bit] bitmap {
53 SHARE_MODE_SHARE_DELETE = 0x100,
54 SHARE_MODE_SHARE_WRITE = 0x080,
55 SHARE_MODE_SHARE_READ = 0x040,
56 SHARE_MODE_ACCESS_DELETE = 0x020,
57 SHARE_MODE_ACCESS_WRITE = 0x010,
58 SHARE_MODE_ACCESS_READ = 0x008,
59 SHARE_MODE_LEASE_HANDLE = 0x004,
60 SHARE_MODE_LEASE_WRITE = 0x002,
61 SHARE_MODE_LEASE_READ = 0x001
64 typedef [public] struct {
65 hyper unique_content_epoch;
66 share_mode_flags flags;
67 [string,charset(UTF8)] char *servicepath;
68 [string,charset(UTF8)] char *base_name;
69 [string,charset(UTF8)] char *stream_name;
70 uint32 num_delete_tokens;
71 [size_is(num_delete_tokens)] delete_token delete_tokens[];
72 NTTIME old_write_time;
73 NTTIME changed_write_time;
74 [skip] boolean8 not_stored;
75 [skip] boolean8 modified;
76 [ignore] file_id id; /* In memory key used to lookup cache. */
79 /* these are 0x30 (48) characters */
80 const string VFS_DEFAULT_DURABLE_COOKIE_MAGIC =
81 "VFS_DEFAULT_DURABLE_COOKIE_MAGIC ";
82 const uint32 VFS_DEFAULT_DURABLE_COOKIE_VERSION = 0;
84 /* this corresponds to struct stat_ex (SMB_STRUCT_STAT) */
102 } vfs_default_durable_stat;
104 typedef [public] struct {
105 [value(VFS_DEFAULT_DURABLE_COOKIE_MAGIC),charset(DOS)] uint8 magic[0x30];
106 [value(VFS_DEFAULT_DURABLE_COOKIE_VERSION)] uint32 version;
107 boolean8 allow_reconnect;
109 [string,charset(UTF8)] char *servicepath;
110 [string,charset(UTF8)] char *base_name;
111 hyper initial_allocation_size;
112 hyper position_information;
113 boolean8 update_write_time_triggered;
114 boolean8 update_write_time_on_close;
115 boolean8 write_time_forced;
116 NTTIME close_write_time;
117 vfs_default_durable_stat stat_info;
118 } vfs_default_durable_cookie;
120 typedef [public] struct {
122 udlong share_file_id;
124 } oplock_break_message;
126 typedef [public] struct {
128 udlong share_file_id;
129 [string,charset(UTF8)] char *servicepath;
130 [string,charset(UTF8)] char *base_name;
131 [string,charset(UTF8)] char *stream_name;
132 } file_rename_message;