2.2.8.1.7 SMB_FIND_FILE_BOTH_DIRECTORY_INFO

This information level structure is used in TRANS2_FIND_FIRST2 (section 2.2.6.2) and TRANS2_FIND_NEXT2 (section 2.2.6.3) responses to return a combination of the SMB_FIND_FILE_FULL_DIRECTORY_INFO (section 2.2.8.1.5) and SMB_FIND_FILE_NAMES_INFO (section 2.2.8.1.6) data for all files that match the request's search criteria.

 SMB_FIND_FILE_BOTH_DIRECTORY_INFO[SearchCount]
   {
   ULONG             NextEntryOffset;
   ULONG             FileIndex;
   FILETIME          CreationTime;
   FILETIME          LastAccessTime;
   FILETIME          LastWriteTime;
   FILETIME          LastChangeTime;
   LARGE_INTEGER     EndOfFile;
   LARGE_INTEGER     AllocationSize;
   SMB_EXT_FILE_ATTR ExtFileAttributes;
   ULONG             FileNameLength;
   ULONG             EaSize;
   UCHAR             ShortNameLength;
   UCHAR             Reserved;
   WCHAR             ShortName[12];
   UCHAR             FileName[];
  
  
   }

NextEntryOffset: (4 bytes): This field contains the offset, in bytes, from this entry in the list to the next entry in the list. If there are no additional entries the value MUST be zero (0x00000000).

FileIndex: (4 bytes): This field SHOULD<166> be set to zero when sent in a response and SHOULD be ignored when received by the client.

CreationTime: (8 bytes): This field contains the date and time when the file was created.

LastAccessTime: (8 bytes): This field contains the date and time when the file was last accessed.

LastWriteTime: (8 bytes): This field contains the date and time when data was last written to the file.

LastChangeTime: (8 bytes): This field contains the date and time when the file was last changed.

EndOfFile: (8 bytes): The absolute new end-of-file position as a byte offset from the start of the file. EndOfFile specifies the byte offset to the end of the file. Because this value is zero-based, it actually refers to the first free byte in the file. In other words, EndOfFile is the offset to the byte immediately following the last valid byte in the file.

AllocationSize: (8 bytes): This field contains the file allocation size, in bytes. Usually, this value is a multiple of the sector or cluster size of the underlying physical device.

ExtFileAttributes: (4 bytes): This field contains the extended file attributes of the file, encoded as an SMB_EXT_FILE_ATTR (section 2.2.1.2.3) data type.

FileNameLength: (4 bytes): This field MUST contain the length of the FileName field, in bytes.<167>

EaSize: (4 bytes): This field MUST contain the length of the FEAList, in bytes.

ShortNameLength: (1 byte): This field MUST contain the length of the ShortName, in bytes, or zero if no 8.3 name is present.

Reserved: (1 byte): This field is reserved and MUST be zero (0x00).

ShortName: (24 bytes): This field MUST contain the 8.3 name, if any, of the file in Unicode format.

FileName: (variable): This field contains the long name of the file.<168>