SMB2: LockElement: Added SharedLock / ExclusiveLock / Unlock / FailImmediately properties

This commit is contained in:
Tal Aloni 2017-08-31 14:01:10 +03:00
parent f96e6fe404
commit 488165b8b9

View file

@ -35,6 +35,82 @@ namespace SMBLibrary.SMB2
LittleEndianWriter.WriteUInt64(buffer, offset + 20, Reserved); LittleEndianWriter.WriteUInt64(buffer, offset + 20, Reserved);
} }
public bool SharedLock
{
get
{
return (Flags & LockFlags.SharedLock) > 0;
}
set
{
if (value)
{
Flags |= LockFlags.SharedLock;
}
else
{
Flags &= ~LockFlags.SharedLock;
}
}
}
public bool ExclusiveLock
{
get
{
return (Flags & LockFlags.ExclusiveLock) > 0;
}
set
{
if (value)
{
Flags |= LockFlags.ExclusiveLock;
}
else
{
Flags &= ~LockFlags.ExclusiveLock;
}
}
}
public bool Unlock
{
get
{
return (Flags & LockFlags.Unlock) > 0;
}
set
{
if (value)
{
Flags |= LockFlags.Unlock;
}
else
{
Flags &= ~LockFlags.Unlock;
}
}
}
public bool FailImmediately
{
get
{
return (Flags & LockFlags.FailImmediately) > 0;
}
set
{
if (value)
{
Flags |= LockFlags.FailImmediately;
}
else
{
Flags &= ~LockFlags.FailImmediately;
}
}
}
public static List<LockElement> ReadLockList(byte[] buffer, int offset, int lockCount) public static List<LockElement> ReadLockList(byte[] buffer, int offset, int lockCount)
{ {
List<LockElement> result = new List<LockElement>(); List<LockElement> result = new List<LockElement>();