cli_list_smb2
[metze/samba/wip.git] / smbd-adm.txt
1
2 MS-FSA:
3
4         Per Open (Volatile):
5
6                 RootOpen - Share
7                 FileName - absolute/relative to root?
8                 File
9                 Link
10                 Stream
11                 Privileges - (backup/restore/symlink/manage volume/is_admin)
12                 GrantedAccess
13                 RemainingDesiredAccess
14                 SharingAccess
15                 Per Directory:
16                         search mask, search index...
17                         some more stuff...
18                 UserSetModTime
19                 UserSetWriteTime
20                 NextEAEntry
21                 OplockKey (guid)
22
23         Per Brlock (Volatile):
24                 LockOffset
25                 LockLength
26                 IsExclusive
27                 OwnerOpen
28
29         Per NotifyEntryWatch (Volatile):
30                 ...
31
32         Per RHOpcontext (Volatile):
33                 Open
34                 BreakingToRead
35
36         Per Oplock (Volatile per Stream):
37                 ExclusiveOpen: 1 Open
38                 Level2Opens: 0..x Opens
39                 ReadOpens: 0..x Opens
40                 ReadHandleOpens: 0..x Opens
41                 ReadHandleBreakQueue: 0..x RHOpContexts
42                 WaitList: 0..x Opens waiting for Breaks
43                 State: all kind of flags
44                         NO_OPLOCK
45                         LEVEL_ONE_OPLOCK
46                         BATCH_OPLOCK
47                         LEVEL_TWO_OPLOCK
48                         EXCLUSIVE
49                         BREAK_TO_TWO
50                         BREAK_TO_NONE
51                         BREAK_TO_TWO_TO_NONE
52                         READ_CACHING
53                         HANDLE_CACHING
54                         WRITE_CACHING ???
55
56         Per File (Persistent):
57                 FileType: file or directory
58                 FileID: uint64_t unique (inode?)
59                 FileNumber: uint64_t unique (seqnum?)
60                 LinkList: 1..x links (dir => x == 1)
61                 SecurityDescriptor:
62                 FileAttributes:
63                 CreationTime:
64                 LastModificationTime:
65                 LastChangeTime:
66                 LastAccessTime:
67                 ExtendedAttributes:
68                 ExtendedAttributesLength:
69                 ObjectId: guid maybe NULL
70                 BirthVolumeId: guid
71                 BirthObjectId: guid maybe NULL
72                 StreamList:
73                 ReparseTag: uint32_t
74                 ReparseGUID: guid
75                 ReparseData:
76                 DirectoryList: for directories only
77                 Volume:
78                 Usn: uint64_t
79                 IsSymbolicLink:
80                 UserCertificateList:
81                 Volatile Fields:
82                         OpenList:
83                         PendingNotifications: uint32_t ??? for directories only
84
85         Per Link (Persistent):
86                 Name: 1..256 chars (UTF16 or UCS2?)
87                 ShortName: maybe NULL
88                 File:
89                 ParentFile:
90                 IsDeleted:
91                 Volatile Fields:
92                         PendingNotifications: uint32_t ??? for directories only
93
94         Per Stream (Persistent):
95                 StreamType: data or directory stream
96                 Name: 256 chars (UTF16 or UCS2)
97                 Size: uint64_t
98                 AllocationSize: uint64_t multiple of File.Volume.ClusterSize.
99                 ValidDataLength: uint64_t (optional)
100                 File:
101                 IsCompressed:
102                 IsSparse:
103                 IsTemporary:
104                 IsEncrypted:
105                 ExtentList:
106                 Volatile Fields:
107                         Oplock: maybe NULL
108                         ByteRangeLockList:
109                         IsDeleted:
110                         IsDefectManagementDisabled:
111                         PendingNotifications: uint32_t ??? for directories only
112                         ZeroOnDeallocate:
113
114
115
116 SMB 2.10:
117 - session reauth
118 - branch cache hash
119 - multi-credit on port 445
120 - lease and resilience
121
122
123 The SMB 2.1 dialect introduces the following enhancements:
124 - Allowing a client to indicate support for multiple SMB 2 dialects in a multi-protocol negotiate
125 request.
126 - Allowing a client to obtain and preserve client caching state across multiple opens from the same
127 client.
128 - Allowing a client to mark individual write operations on unbuffered handles to be treated as
129 write-through.
130 - Allowing a client to retrieve hashes of a file for use in branch cache retrieval, as specified in [MS-
131 PCCRC].