1
0
mirror of https://github.com/samba-team/samba.git synced 2025-01-11 05:18:09 +03:00

r15814: add SMB2 Lock interface structure

metze
This commit is contained in:
Stefan Metzmacher 2006-05-22 17:21:38 +00:00 committed by Gerald (Jerry) Carter
parent 6e37084965
commit 8f1850ef65
3 changed files with 38 additions and 1 deletions

View File

@ -1781,7 +1781,12 @@ union smb_write {
};
enum smb_lock_level {RAW_LOCK_LOCK, RAW_LOCK_UNLOCK, RAW_LOCK_LOCKX};
enum smb_lock_level {
RAW_LOCK_LOCK,
RAW_LOCK_UNLOCK,
RAW_LOCK_LOCKX,
RAW_LOCK_SMB2
};
/* the generic interface is defined to be equal to the lockingX interface */
#define RAW_LOCK_GENERIC RAW_LOCK_LOCKX
@ -1815,6 +1820,33 @@ union smb_lock {
uint32_t offset;
} in;
} lock, unlock;
/* SMB2 Lock */
struct smb2_lock {
enum smb_lock_level level;
struct {
union smb_handle file;
/* static body buffer 48 (0x30) bytes */
/* uint16_t buffer_code; 0x30 */
uint16_t unknown1; /* must be 0x0001 */
uint32_t unknown2;
/* struct smb2_handle handle; */
uint64_t offset;
uint64_t count;
uint32_t unknown5;
#define SMB2_LOCK_FLAG_NONE 0x00000000
#define SMB2_LOCK_FLAG_EXCLUSIV 0x00000002
#define SMB2_LOCK_FLAG_UNLOCK 0x00000004
#define SMB2_LOCK_FLAGS_MASK 0x00000006
uint32_t flags;
} in;
struct {
/* static body buffer 4 (0x04) bytes */
/* uint16_t buffer_code; 0x04 */
uint16_t unknown1;
} out;
} smb2;
};

View File

@ -802,6 +802,8 @@ struct smbcli_request *smb_raw_lock_send(struct smbcli_tree *tree, union smb_loc
}
}
}
case RAW_LOCK_SMB2:
return NULL;
}
if (!smbcli_request_send(req)) {

View File

@ -969,6 +969,9 @@ _PUBLIC_ NTSTATUS ntvfs_map_lock(struct ntvfs_module_context *ntvfs,
lck2->generic.in.ulock_cnt = 1;
lck2->generic.in.lock_cnt = 0;
break;
case RAW_LOCK_SMB2:
return NT_STATUS_INVALID_LEVEL;
}
lck2->generic.level = RAW_LOCK_GENERIC;