- Implement NtfsGetPositionInformation(), NtfsGetBasicInformation()
- Add a fixme in NtfsGetStandardInformation() regarding the number of links

svn path=/trunk/; revision=65468
This commit is contained in:
Pierre Schweitzer 2014-11-23 19:53:16 +00:00
parent 2fb9a4573b
commit 4a61f5ee5b

View file

@ -59,7 +59,7 @@ NtfsGetStandardInformation(PNTFS_FCB Fcb,
StandardInfo->AllocationSize = Fcb->RFCB.AllocationSize; StandardInfo->AllocationSize = Fcb->RFCB.AllocationSize;
StandardInfo->EndOfFile = Fcb->RFCB.FileSize; StandardInfo->EndOfFile = Fcb->RFCB.FileSize;
StandardInfo->NumberOfLinks = 0; StandardInfo->NumberOfLinks = 0; /* FIXME */
StandardInfo->DeletePending = FALSE; StandardInfo->DeletePending = FALSE;
StandardInfo->Directory = NtfsFCBIsDirectory(Fcb); StandardInfo->Directory = NtfsFCBIsDirectory(Fcb);
@ -75,15 +75,12 @@ NtfsGetPositionInformation(PFILE_OBJECT FileObject,
PFILE_POSITION_INFORMATION PositionInfo, PFILE_POSITION_INFORMATION PositionInfo,
PULONG BufferLength) PULONG BufferLength)
{ {
UNREFERENCED_PARAMETER(FileObject);
DPRINT("NtfsGetPositionInformation() called\n"); DPRINT("NtfsGetPositionInformation() called\n");
if (*BufferLength < sizeof(FILE_POSITION_INFORMATION)) if (*BufferLength < sizeof(FILE_POSITION_INFORMATION))
return STATUS_BUFFER_OVERFLOW; return STATUS_BUFFER_OVERFLOW;
PositionInfo->CurrentByteOffset.QuadPart = 0; PositionInfo->CurrentByteOffset.QuadPart = FileObject->CurrentByteOffset.QuadPart;
// FileObject->CurrentByteOffset.QuadPart;
DPRINT("Getting position %I64x\n", DPRINT("Getting position %I64x\n",
PositionInfo->CurrentByteOffset.QuadPart); PositionInfo->CurrentByteOffset.QuadPart);
@ -102,29 +99,19 @@ NtfsGetBasicInformation(PFILE_OBJECT FileObject,
PFILE_BASIC_INFORMATION BasicInfo, PFILE_BASIC_INFORMATION BasicInfo,
PULONG BufferLength) PULONG BufferLength)
{ {
PFILENAME_ATTRIBUTE FileName = &Fcb->Entry;
DPRINT("NtfsGetBasicInformation() called\n"); DPRINT("NtfsGetBasicInformation() called\n");
if (*BufferLength < sizeof(FILE_BASIC_INFORMATION)) if (*BufferLength < sizeof(FILE_BASIC_INFORMATION))
return STATUS_BUFFER_OVERFLOW; return STATUS_BUFFER_OVERFLOW;
#if 0 BasicInfo->CreationTime.QuadPart = FileName->CreationTime;
CdfsDateTimeToFileTime(Fcb, BasicInfo->LastAccessTime.QuadPart = FileName->LastAccessTime;
&BasicInfo->CreationTime); BasicInfo->LastWriteTime.QuadPart = FileName->LastWriteTime;
CdfsDateTimeToFileTime(Fcb, BasicInfo->ChangeTime.QuadPart = FileName->ChangeTime;
&BasicInfo->LastAccessTime);
CdfsDateTimeToFileTime(Fcb,
&BasicInfo->LastWriteTime);
CdfsDateTimeToFileTime(Fcb,
&BasicInfo->ChangeTime);
CdfsFileFlagsToAttributes(Fcb, NtfsFileFlagsToAttributes(FileName->FileAttributes, &BasicInfo->FileAttributes);
&BasicInfo->FileAttributes);
#else
UNREFERENCED_PARAMETER(FileObject);
UNREFERENCED_PARAMETER(Fcb);
UNREFERENCED_PARAMETER(DeviceObject);
UNREFERENCED_PARAMETER(BasicInfo);
#endif
*BufferLength -= sizeof(FILE_BASIC_INFORMATION); *BufferLength -= sizeof(FILE_BASIC_INFORMATION);