2.2.8.1.3 SMB_FIND_FILE_ID_BOTH_DIRECTORY_INFO

The fields and encoding of the TRANS2_FIND_FIRST2 SMB_FIND_FILE_ID_BOTH_DIRECTORY_INFO Information Level response message are identical to the fields and encoding of SMB_FIND_FILE_BOTH_DIRECTORY_INFO Information Level, as specified in [MS-CIFS], section 2.2.6.2.2, with the addition of the Reserved2 and FileId fields described in the list that follows the table.<73>

 SMB_FIND_FILE_ID_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];
   USHORT        Reserved2;
   LARGE_INTEGER FileID;
   SMB_STRING    FileName;
   }
            


0


1


2


3


4


5


6


7


8


9

1
0


1


2


3


4


5


6


7


8


9

2
0


1


2


3


4


5


6


7


8


9

3
0


1

NextEntryOffset

FileIndex

CreationTime

...

LastAccessTime

...

LastWriteTime

...

LastChangeTime

...

EndOfFile

...

AllocationSize

...

ExtFileAttributes

FileNameLength

EaSize

ShortNameLength

Reserved

ShortName (24 bytes)

...

...

...

Reserved2

FileId

...

FileName (variable)

...

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

AllocationSize (8 bytes):  This LARGE_INTEGER field MUST be set to zero when sending a response and MUST be ignored when the client receives this message.

ExtFileAttributes (4 bytes): This field represents the extended attributes for this file that MUST be marked as a DIRECTORY.

EaSize (4 bytes):  This field MUST be set to zero when sending a response and MUST be ignored when the client receives this message.

Reserved (1 byte): An 8-bit unsigned integer that is used to maintain 64-bit alignment. This member MUST be 0x00.

Reserved2 (2 bytes): A 16-bit unsigned integer that is used to maintain 64-bit alignment. This member MUST be 0x0000.

FileId (8 bytes): A LARGE_INTEGER that serves as an internal file system identifier. This number MUST be unique for each file on a given volume. If a remote file system does not support unique FileId values, then the FileId field MUST be set to zero.