* ntdll.h (struct _FILE_FS_OBJECTID_INFORMATION): Define.
* path.cc (struct smb_extended_info): Define. (fs_info::update): Request object id info to get Samba information. Set flags according to new implementation. * path.h (struct fs_info): Add samba_version to status_flags. Implement flags() and samba_version() using IMPLEMENT_STATUS_FLAG.
This commit is contained in:
@ -97,7 +97,8 @@ struct fs_info
|
||||
private:
|
||||
struct status_flags
|
||||
{
|
||||
DWORD flags; /* Volume flags */
|
||||
DWORD flags; /* Volume flags */
|
||||
DWORD samba_version; /* Samba version if available */
|
||||
unsigned is_remote_drive : 1;
|
||||
unsigned has_buggy_open : 1;
|
||||
unsigned has_acls : 1;
|
||||
@ -110,11 +111,11 @@ struct fs_info
|
||||
unsigned is_cdrom : 1;
|
||||
} status;
|
||||
public:
|
||||
void clear () { memset (this, 0 , sizeof *this); }
|
||||
void clear () { memset (&status, 0 , sizeof status); }
|
||||
fs_info () { clear (); }
|
||||
|
||||
inline DWORD& flags () {return status.flags;};
|
||||
|
||||
IMPLEMENT_STATUS_FLAG (DWORD, flags)
|
||||
IMPLEMENT_STATUS_FLAG (DWORD, samba_version)
|
||||
IMPLEMENT_STATUS_FLAG (bool, is_remote_drive)
|
||||
IMPLEMENT_STATUS_FLAG (bool, has_buggy_open)
|
||||
IMPLEMENT_STATUS_FLAG (bool, has_acls)
|
||||
|
Reference in New Issue
Block a user