UNIX Extensions
From SambaWiki
See http://samba.org/samba/CIFS_POSIX_extensions.html
All Unix extensions are TRANSACT2 commands in the range from 0x200 to 0x2FF (inclusive).
PosixOpen
Server specifies it can serve these by returning :
CIFS_UNIX_POSIX_PATH_OPERATIONS_CAP 0x20
in the reply to a trans2 qfsinfo (TRANSACT2_QFSINFO 0x03) info level SMB_QUERY_CIFS_UNIX_INFO (0x200) call.
For open, call TRANSACT2_SETPATHINFO (0x06) call info level :
SMB_POSIX_PATH_OPEN 0x209
The request data block should be 14 bytes consisting of the following :
Size | Offset | Value |
---|---|---|
4 bytes | 0 | Flags field (same as smb_ntcreate_flags in SMBNTCreateX to request oplocks) |
4 bytes | 4 | POSIX open flags (see below) |
4 bytes | 8 | POSIX mode_t (see below) |
2 bytes | 12 | Reply info level requested (see below) |
Negotiating Capabilities
Capability | Value |
---|---|
CIFS_UNIX_FCNLT_LOCKS_CAP | 0x01 |
CIFS_UNIX_POSIX_ACLS_CAP | 0x02 |
CIFS_UNIX_XATTR_CAP | 0x04 |
CIFS_UNIX_EXATTR_CAP | 0x08 |
CIFS_UNIX_POSIX_PATH_OPERATIONS_CAP | 0x20 |