- Store the link count in FCB and return it in FileStandardInformation query
- Return the MFT index in NtfsGetInternalInformation query 

svn path=/trunk/; revision=65679
This commit is contained in:
Pierre Schweitzer 2014-12-15 21:28:06 +00:00
parent ef4abbbb64
commit e032664c6c
3 changed files with 5 additions and 3 deletions

View file

@ -358,6 +358,7 @@ NtfsMakeRootFCB(PNTFS_VCB Vcb)
Fcb->RFCB.ValidDataLength.QuadPart = FileName->DataSize;
Fcb->RFCB.AllocationSize.QuadPart = FileName->AllocatedSize;
Fcb->MFTIndex = NTFS_FILE_ROOT;
Fcb->LinkCount = MftRecord->LinkCount;
NtfsFCBInitializeCache(Vcb, Fcb);
NtfsAddFCBToTable(Vcb, Fcb);
@ -485,6 +486,7 @@ NtfsMakeFCBFromDirEntry(PNTFS_VCB Vcb,
NtfsFCBInitializeCache(Vcb, rcFCB);
rcFCB->RefCount = 1;
rcFCB->MFTIndex = MFTIndex;
rcFCB->LinkCount = Record->LinkCount;
NtfsAddFCBToTable(Vcb, rcFCB);
*fileFCB = rcFCB;

View file

@ -59,7 +59,7 @@ NtfsGetStandardInformation(PNTFS_FCB Fcb,
StandardInfo->AllocationSize = Fcb->RFCB.AllocationSize;
StandardInfo->EndOfFile = Fcb->RFCB.FileSize;
StandardInfo->NumberOfLinks = 0; /* FIXME */
StandardInfo->NumberOfLinks = Fcb->LinkCount;
StandardInfo->DeletePending = FALSE;
StandardInfo->Directory = NtfsFCBIsDirectory(Fcb);
@ -183,8 +183,7 @@ NtfsGetInternalInformation(PNTFS_FCB Fcb,
if (*BufferLength < sizeof(FILE_INTERNAL_INFORMATION))
return STATUS_BUFFER_OVERFLOW;
/* FIXME: get a real index, that can be used in a create operation */
InternalInfo->IndexNumber.QuadPart = 0;
InternalInfo->IndexNumber.QuadPart = Fcb->MFTIndex;
*BufferLength -= sizeof(FILE_INTERNAL_INFORMATION);

View file

@ -444,6 +444,7 @@ typedef struct _FCB
ULONG Flags;
ULONGLONG MFTIndex;
USHORT LinkCount;
FILENAME_ATTRIBUTE Entry;