3 import
"file_id.idl", "server_id.idl";
6 IDL structures for notify change code
8 this defines the structures used in the notify database code, and
9 the change notify buffers
13 pointer_default(unique)
18 /* structure used in the notify database */
19 typedef [public] struct {
21 uint32 filter
; /* filter to apply in this directory */
22 uint32 subdir_filter
; /* filter to apply in child directories */
23 uint32 dir_fd
; /* fd of open directory */
24 file_id dir_id
; /* file_id of open directory */
26 uint32 path_len
; /* saves some computation on search */
30 typedef [public] struct {
32 notify_entry entries
[num_entries
];
35 typedef [public] struct {
37 uint32 filter
; /* filter to apply in this directory */
38 uint32 subdir_filter
; /* filter to apply in child directories */
43 to allow for efficient search for matching entries, we
44 divide them by the directory depth, with a separate array
45 per depth. The entries within each depth are sorted by path,
46 allowing for a bisection search.
48 The max_mask and max_mask_subdir at each depth is the
49 bitwise or of the filters and subdir filters for all entries
50 at that depth. This allows a depth to be quickly skipped if
51 no entries will match the target filter
55 uint32 max_mask_subdir
;
57 notify_entry entries
[num_entries
];
60 typedef [public] struct {
62 notify_depth depth
[num_depths
];
65 /* structure sent between servers in notify messages */
66 typedef [public] struct {
72 typedef [public] struct {
76 } notify_remote_event
;
78 typedef [v1_enum] enum {
79 FILE_ACTION_ADDED
= 0x00000001,
80 FILE_ACTION_REMOVED
= 0x00000002,
81 FILE_ACTION_MODIFIED
= 0x00000003,
82 FILE_ACTION_RENAMED_OLD_NAME
= 0x00000004,
83 FILE_ACTION_RENAMED_NEW_NAME
= 0x00000005,
84 FILE_ACTION_ADDED_STREAM
= 0x00000006,
85 FILE_ACTION_REMOVED_STREAM
= 0x00000007,
86 FILE_ACTION_MODIFIED_STREAM
= 0x00000008
89 /* structure sent at the CIFS layer */
90 /* Align on 4-byte boundary according to MS-CIFS 2.2.7.4.2 */
91 typedef [public,gensize
,flag
(NDR_ALIGN4
)] struct {
92 uint32 NextEntryOffset
;
93 FILE_NOTIFY_ACTION Action
;
94 [value
(strlen_m
(FileName1
)*2)] uint32 FileNameLength
;
95 [charset
(UTF16
),flag
(STR_NOTERM
)] uint16 FileName1
[FileNameLength
];
96 } FILE_NOTIFY_INFORMATION
;