HACK: add smbd-adm.txt
authorStefan Metzmacher <metze@samba.org>
Tue, 5 Jul 2011 14:25:39 +0000 (16:25 +0200)
committerStefan Metzmacher <metze@samba.org>
Tue, 16 Jan 2018 06:43:39 +0000 (07:43 +0100)
smbd-adm.txt [new file with mode: 0644]

diff --git a/smbd-adm.txt b/smbd-adm.txt
new file mode 100644 (file)
index 0000000..21e7a8a
--- /dev/null
@@ -0,0 +1,131 @@
+
+MS-FSA:
+
+       Per Open (Volatile):
+
+               RootOpen - Share
+               FileName - absolute/relative to root?
+               File
+               Link
+               Stream
+               Privileges - (backup/restore/symlink/manage volume/is_admin)
+               GrantedAccess
+               RemainingDesiredAccess
+               SharingAccess
+               Per Directory:
+                       search mask, search index...
+                       some more stuff...
+               UserSetModTime
+               UserSetWriteTime
+               NextEAEntry
+               OplockKey (guid)
+
+       Per Brlock (Volatile):
+               LockOffset
+               LockLength
+               IsExclusive
+               OwnerOpen
+
+       Per NotifyEntryWatch (Volatile):
+               ...
+
+       Per RHOpcontext (Volatile):
+               Open
+               BreakingToRead
+
+       Per Oplock (Volatile per Stream):
+               ExclusiveOpen: 1 Open
+               Level2Opens: 0..x Opens
+               ReadOpens: 0..x Opens
+               ReadHandleOpens: 0..x Opens
+               ReadHandleBreakQueue: 0..x RHOpContexts
+               WaitList: 0..x Opens waiting for Breaks
+               State: all kind of flags
+                       NO_OPLOCK
+                       LEVEL_ONE_OPLOCK
+                       BATCH_OPLOCK
+                       LEVEL_TWO_OPLOCK
+                       EXCLUSIVE
+                       BREAK_TO_TWO
+                       BREAK_TO_NONE
+                       BREAK_TO_TWO_TO_NONE
+                       READ_CACHING
+                       HANDLE_CACHING
+                       WRITE_CACHING ???
+
+       Per File (Persistent):
+               FileType: file or directory
+               FileID: uint64_t unique (inode?)
+               FileNumber: uint64_t unique (seqnum?)
+               LinkList: 1..x links (dir => x == 1)
+               SecurityDescriptor:
+               FileAttributes:
+               CreationTime:
+               LastModificationTime:
+               LastChangeTime:
+               LastAccessTime:
+               ExtendedAttributes:
+               ExtendedAttributesLength:
+               ObjectId: guid maybe NULL
+               BirthVolumeId: guid
+               BirthObjectId: guid maybe NULL
+               StreamList:
+               ReparseTag: uint32_t
+               ReparseGUID: guid
+               ReparseData:
+               DirectoryList: for directories only
+               Volume:
+               Usn: uint64_t
+               IsSymbolicLink:
+               UserCertificateList:
+               Volatile Fields:
+                       OpenList:
+                       PendingNotifications: uint32_t ??? for directories only
+
+       Per Link (Persistent):
+               Name: 1..256 chars (UTF16 or UCS2?)
+               ShortName: maybe NULL
+               File:
+               ParentFile:
+               IsDeleted:
+               Volatile Fields:
+                       PendingNotifications: uint32_t ??? for directories only
+
+       Per Stream (Persistent):
+               StreamType: data or directory stream
+               Name: 256 chars (UTF16 or UCS2)
+               Size: uint64_t
+               AllocationSize: uint64_t multiple of File.Volume.ClusterSize.
+               ValidDataLength: uint64_t (optional)
+               File:
+               IsCompressed:
+               IsSparse:
+               IsTemporary:
+               IsEncrypted:
+               ExtentList:
+               Volatile Fields:
+                       Oplock: maybe NULL
+                       ByteRangeLockList:
+                       IsDeleted:
+                       IsDefectManagementDisabled:
+                       PendingNotifications: uint32_t ??? for directories only
+                       ZeroOnDeallocate:
+
+
+
+SMB 2.10:
+- session reauth
+- branch cache hash
+- multi-credit on port 445
+- lease and resilience
+
+
+The SMB 2.1 dialect introduces the following enhancements:
+- Allowing a client to indicate support for multiple SMB 2 dialects in a multi-protocol negotiate
+request.
+- Allowing a client to obtain and preserve client caching state across multiple opens from the same
+client.
+- Allowing a client to mark individual write operations on unbuffered handles to be treated as
+write-through.
+- Allowing a client to retrieve hashes of a file for use in branch cache retrieval, as specified in [MS-
+PCCRC].