共用方式為


2.1.5.6.3.9 FileIdExtdDirectoryInformation

OutputBuffer is an array of one or more FILE_ID_EXTD_DIR_INFORMATION structures as described in [MS-FSCC] section 2.4.22. Entry is a parameter to this routine that points to the current FILE_ID_EXTD_DIR_INFORMATION structure to fill out. Note that the FileName field is not set in this section.

Pseudocode for the operation is as follows:

  • If OutputBufferSize is smaller than FieldOffset(FILE_ID_EXTD_DIR_INFORMATION.FileName), the operation MUST be failed with STATUS_INFO_LENGTH_MISMATCH.

  • The object store MUST process this query using the algorithm described in section 2.1.5.6.3.

  • Entry MUST be constructed as follows:

  • Entry.NextEntryOffset set to zero

  • Entry.FileIndex set to zero

  • Entry.CreationTime set to Link.CreationTime

  • Entry.LastAccessTime set to Link.LastAccessTime

  • Entry.LastWriteTime set to Link.LastModificationTime

  • Entry.ChangeTime set to Link.LastChangeTime

  • Entry.EndOfFile set to Link.FileSize

  • Entry.AllocationSize set to Link.AllocationSize

  • Entry.FileAttributes set to Link.FileAttributes

  • If Link.File.FileType is DirectoryFile or ViewIndexFile:

    • Entry.FileAttributes.FILE_ATTRIBUTE_DIRECTORY is set

  • EndIf

  • If Entry.FileAttributes has no attributes set:

    • Entry.FileAttributes.FILE_ATTRIBUTE_NORMAL is set

  • EndIf

  • Entry.EaSize set to Link.ExtendedAttributesLength<76>

  • Entry.ReparsePointTag set to Link.ReparseTag

  • If Link.Name == "." (entry for the directory being queried):

    • Entry.FileID set to Open.File.FileId128

  • Else if Link.Name == ".." (entry for the parent of the directory being queried):

    • Entry.FileID SHOULD<77> be set to Open.Link.ParentFile.FileId128, otherwise MUST be set to zero

  • Else:

    • Entry.FileID set to Link.File.FileId128

  • EndIf

  • Entry.FileNameLength set to the length, in bytes, of Link.Name