diff --git a/reactos/drivers/filesystems/ntfs/fcb.c b/reactos/drivers/filesystems/ntfs/fcb.c index 2cb224d7151..f5101572a96 100644 --- a/reactos/drivers/filesystems/ntfs/fcb.c +++ b/reactos/drivers/filesystems/ntfs/fcb.c @@ -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; diff --git a/reactos/drivers/filesystems/ntfs/finfo.c b/reactos/drivers/filesystems/ntfs/finfo.c index 4ca26b83dde..127532975ed 100644 --- a/reactos/drivers/filesystems/ntfs/finfo.c +++ b/reactos/drivers/filesystems/ntfs/finfo.c @@ -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); diff --git a/reactos/drivers/filesystems/ntfs/ntfs.h b/reactos/drivers/filesystems/ntfs/ntfs.h index 77570526c5f..6f263ade125 100644 --- a/reactos/drivers/filesystems/ntfs/ntfs.h +++ b/reactos/drivers/filesystems/ntfs/ntfs.h @@ -444,6 +444,7 @@ typedef struct _FCB ULONG Flags; ULONGLONG MFTIndex; + USHORT LinkCount; FILENAME_ATTRIBUTE Entry;