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 smb2_lease_key parent_lease_key
;
49 security_token
*delete_nt_token
;
50 security_unix_token
*delete_token
;
53 typedef [public,bitmap16bit
] bitmap
{
54 SHARE_MODE_SHARE_DELETE
= 0x100,
55 SHARE_MODE_SHARE_WRITE
= 0x080,
56 SHARE_MODE_SHARE_READ
= 0x040,
57 SHARE_MODE_ACCESS_DELETE
= 0x020,
58 SHARE_MODE_ACCESS_WRITE
= 0x010,
59 SHARE_MODE_ACCESS_READ
= 0x008,
60 SHARE_MODE_LEASE_HANDLE
= 0x004,
61 SHARE_MODE_LEASE_WRITE
= 0x002,
62 SHARE_MODE_LEASE_READ
= 0x001
65 typedef [public] struct {
66 hyper unique_content_epoch
;
67 share_mode_flags flags
;
68 [string,charset
(UTF8
)] char *servicepath
;
69 [string,charset
(UTF8
)] char *base_name
;
70 [string,charset
(UTF8
)] char *stream_name
;
71 uint32 num_delete_tokens
;
72 [size_is(num_delete_tokens
)] delete_token delete_tokens
[];
73 NTTIME old_write_time
;
74 NTTIME changed_write_time
;
75 [skip
] boolean8 not_stored
;
76 [skip
] boolean8 modified
;
77 [ignore] file_id
id; /* In memory key used to lookup cache. */
80 /* these are 0x30 (48) characters */
81 const string VFS_DEFAULT_DURABLE_COOKIE_MAGIC
=
82 "VFS_DEFAULT_DURABLE_COOKIE_MAGIC ";
83 const uint32 VFS_DEFAULT_DURABLE_COOKIE_VERSION
= 0;
85 /* this corresponds to struct stat_ex (SMB_STRUCT_STAT) */
103 } vfs_default_durable_stat
;
105 typedef [public] struct {
106 [value
(VFS_DEFAULT_DURABLE_COOKIE_MAGIC
),charset
(DOS
)] uint8 magic
[0x30];
107 [value
(VFS_DEFAULT_DURABLE_COOKIE_VERSION
)] uint32
version;
108 boolean8 allow_reconnect
;
110 [string,charset
(UTF8
)] char *servicepath
;
111 [string,charset
(UTF8
)] char *base_name
;
112 hyper initial_allocation_size
;
113 hyper position_information
;
114 boolean8 update_write_time_triggered
;
115 boolean8 update_write_time_on_close
;
116 boolean8 write_time_forced
;
117 NTTIME close_write_time
;
118 vfs_default_durable_stat stat_info
;
119 } vfs_default_durable_cookie
;
121 typedef [public] struct {
123 udlong share_file_id
;
125 } oplock_break_message
;
127 typedef [public] struct {
129 udlong share_file_id
;
130 [string,charset
(UTF8
)] char *servicepath
;
131 [string,charset
(UTF8
)] char *base_name
;
132 [string,charset
(UTF8
)] char *stream_name
;
133 } file_rename_message
;