StandardInfo->Directory = FALSE;
}
StandardInfo->NumberOfLinks = 1;
- StandardInfo->DeletePending = BooleanFlagOn(FCB->Flags, FCB_DELETE_PENDING) ? TRUE : FALSE;
+ StandardInfo->DeletePending = BooleanFlagOn(FCB->Flags, FCB_DELETE_PENDING);
*BufferLength -= sizeof(FILE_STANDARD_INFORMATION);
return STATUS_SUCCESS;
/* Check volume label bit */
ASSERT(0 == (*FCB->Attributes & _A_VOLID));
- if (FCB->Flags & FCB_IS_FATX_ENTRY)
+ if (BooleanFlagOn(FCB->Flags, FCB_IS_FATX_ENTRY))
{
if (BasicInfo->CreationTime.QuadPart != 0 && BasicInfo->CreationTime.QuadPart != -1)
{
if (*BufferLength < sizeof(FILE_BASIC_INFORMATION))
return STATUS_BUFFER_OVERFLOW;
- if (FCB->Flags & FCB_IS_FATX_ENTRY)
+ if (BooleanFlagOn(FCB->Flags, FCB_IS_FATX_ENTRY))
{
FsdDosDateTimeToSystemTime(DeviceExt,
FCB->entry.FatX.CreationDate,
return STATUS_SUCCESS;
}
- if (FCB->Flags & FCB_DELETE_PENDING)
+ if (BooleanFlagOn(FCB->Flags, FCB_DELETE_PENDING))
{
/* stream already marked for deletion. just update the file object */
FileObject->DeletePending = TRUE;
if (*BufferLength < sizeof(FILE_NETWORK_OPEN_INFORMATION))
return(STATUS_BUFFER_OVERFLOW);
- if (Fcb->Flags & FCB_IS_FATX_ENTRY)
+ if (BooleanFlagOn(Fcb->Flags, FCB_IS_FATX_ENTRY))
{
FsdDosDateTimeToSystemTime(DeviceExt,
Fcb->entry.FatX.CreationDate,
}
if (!vfatFCBIsDirectory(Fcb))
{
- if (Fcb->Flags & FCB_IS_FATX_ENTRY)
+ if (BooleanFlagOn(Fcb->Flags, FCB_IS_FATX_ENTRY))
Fcb->entry.FatX.FileSize = Size;
else
Fcb->entry.Fat.FileSize = Size;
ULONG ClusterSize = DeviceExt->FatInfo.BytesPerCluster;
ULONG NewSize = AllocationSize->u.LowPart;
ULONG NCluster;
- BOOLEAN AllocSizeChanged = FALSE;
+ BOOLEAN AllocSizeChanged = FALSE, IsFatX = BooleanFlagOn(Fcb->Flags, FCB_IS_FATX_ENTRY);
DPRINT("VfatSetAllocationSizeInformation(File <%wZ>, AllocationSize %d %u)\n",
&Fcb->PathNameU, AllocationSize->HighPart, AllocationSize->LowPart);
- if (Fcb->Flags & FCB_IS_FATX_ENTRY)
+ if (IsFatX)
OldSize = Fcb->entry.FatX.FileSize;
else
OldSize = Fcb->entry.Fat.FileSize;
return STATUS_DISK_FULL;
}
- if (Fcb->Flags & FCB_IS_FATX_ENTRY)
+ if (IsFatX)
{
Fcb->entry.FatX.FirstCluster = FirstCluster;
}
}
else
{
- if (Fcb->Flags & FCB_IS_FATX_ENTRY)
+ if (IsFatX)
{
Fcb->entry.FatX.FirstCluster = 0;
}
SystemBuffer = IrpContext->Irp->AssociatedIrp.SystemBuffer;
BufferLength = IrpContext->Stack->Parameters.QueryFile.Length;
- if (!(FCB->Flags & FCB_IS_PAGE_FILE))
+ if (!BooleanFlagOn(FCB->Flags, FCB_IS_PAGE_FILE))
{
if (!ExAcquireResourceSharedLite(&FCB->MainResource,
BooleanFlagOn(IrpContext->Flags, IRPCONTEXT_CANWAIT)))
Status = STATUS_INVALID_PARAMETER;
}
- if (!(FCB->Flags & FCB_IS_PAGE_FILE))
+ if (!BooleanFlagOn(FCB->Flags, FCB_IS_PAGE_FILE))
{
ExReleaseResourceLite(&FCB->MainResource);
}
}
}
- if (!(FCB->Flags & FCB_IS_PAGE_FILE))
+ if (!BooleanFlagOn(FCB->Flags, FCB_IS_PAGE_FILE))
{
if (!ExAcquireResourceExclusiveLite(&FCB->MainResource,
BooleanFlagOn(IrpContext->Flags, IRPCONTEXT_CANWAIT)))
Status = STATUS_NOT_SUPPORTED;
}
- if (!(FCB->Flags & FCB_IS_PAGE_FILE))
+ if (!BooleanFlagOn(FCB->Flags, FCB_IS_PAGE_FILE))
{
ExReleaseResourceLite(&FCB->MainResource);
}
LARGE_INTEGER ByteOffset;
PVOID Buffer;
ULONG BytesPerSector;
- BOOLEAN PagingIo, CanWait;
+ BOOLEAN PagingIo, CanWait, IsVolume;
ASSERT(IrpContext);
BytesPerSector = IrpContext->DeviceExt->FatInfo.BytesPerSector;
PagingIo = BooleanFlagOn(IrpContext->Irp->Flags, IRP_PAGING_IO);
CanWait = BooleanFlagOn(IrpContext->Flags, IRPCONTEXT_CANWAIT);
+ IsVolume = BooleanFlagOn(Fcb->Flags, FCB_IS_VOLUME);
/* fail if file is a directory and no paged read */
if (*Fcb->Attributes & FILE_ATTRIBUTE_DIRECTORY && !PagingIo)
DPRINT("'%wZ', Offset: %u, Length %u\n", &Fcb->PathNameU, ByteOffset.u.LowPart, Length);
- if (ByteOffset.u.HighPart && !(Fcb->Flags & FCB_IS_VOLUME))
+ if (ByteOffset.u.HighPart && !IsVolume)
{
Status = STATUS_INVALID_PARAMETER;
goto ByeBye;
goto ByeBye;
}
- if (IrpContext->Irp->Flags & (IRP_PAGING_IO | IRP_NOCACHE) || (Fcb->Flags & FCB_IS_VOLUME))
+ if (IrpContext->Irp->Flags & (IRP_PAGING_IO | IRP_NOCACHE) || IsVolume)
{
if (ByteOffset.u.LowPart % BytesPerSector != 0 || Length % BytesPerSector != 0)
{
}
}
- if (Fcb->Flags & FCB_IS_VOLUME)
+ if (IsVolume)
{
Resource = &IrpContext->DeviceExt->DirResource;
}
ULONG Length = 0;
PVOID Buffer;
ULONG BytesPerSector;
- BOOLEAN PagingIo, CanWait;
+ BOOLEAN PagingIo, CanWait, IsVolume;
ASSERT(IrpContext);
PagingIo = BooleanFlagOn(IrpContext->Irp->Flags, IRP_PAGING_IO);
CanWait = BooleanFlagOn(IrpContext->Flags, IRPCONTEXT_CANWAIT);
+ IsVolume = BooleanFlagOn(Fcb->Flags, FCB_IS_VOLUME);
/* fail if file is a directory and no paged read */
if (*Fcb->Attributes & FILE_ATTRIBUTE_DIRECTORY && !PagingIo)
Length = IrpContext->Stack->Parameters.Write.Length;
BytesPerSector = IrpContext->DeviceExt->FatInfo.BytesPerSector;
- if (ByteOffset.u.HighPart && !(Fcb->Flags & FCB_IS_VOLUME))
+ if (ByteOffset.u.HighPart && !IsVolume)
{
Status = STATUS_INVALID_PARAMETER;
goto ByeBye;
}
}
- if (IrpContext->Irp->Flags & (IRP_PAGING_IO|IRP_NOCACHE) || (Fcb->Flags & FCB_IS_VOLUME))
+ if (IrpContext->Irp->Flags & (IRP_PAGING_IO|IRP_NOCACHE) || IsVolume)
{
if (ByteOffset.u.LowPart % BytesPerSector != 0 || Length % BytesPerSector != 0)
{
}
}
- if (Fcb->Flags & FCB_IS_VOLUME)
+ if (IsVolume)
{
Resource = &IrpContext->DeviceExt->DirResource;
}
}
}
- if (!CanWait && !(Fcb->Flags & FCB_IS_VOLUME))
+ if (!CanWait && !IsVolume)
{
if (ByteOffset.u.LowPart + Length > Fcb->RFCB.AllocationSize.u.LowPart)
{