2.2.7.1.2 Server Response Extensions
When a client requests extended information by setting NT_CREATE_REQUEST_EXTENDED_RESPONSE, a successful response takes the following format.
Aside from ResponseType, NMPipeStatus_or_FileStatusFlags, VolumeGUID, FileId, MaximalAccessRights, and GuestMaximalAccessRights fields, all other fields are as specified in [MS-CIFS] section 2.2.7.1.2.
-
NT_Trans_Parameters { UCHAR OpLockLevel; UCHAR ResponseType; USHORT FID; ULONG CreateAction; ULONG EAErrorOffset; FILETIME CreationTime; FILETIME LastAccessTime; FILETIME LastWriteTime; FILETIME LastChangeTime; SMB_EXT_FILE_ATTR ExtFileAttributes; LARGE_INTEGER AllocationSize; LARGE_INTEGER EndOfFile; USHORT ResourceType; SMB_NMPIPE_STATUS NMPipeStatus_or_FileStatusFlags; UCHAR Directory; GUID VolumeGUID; ULONGLONG FileId; ACCESS_MASK MaximalAccessRights; ACCESS_MASK GuestMaximalAccessRights; }
NT_Trans_Parameters (69 bytes):
|
|
|
|
|
|
|
|
|
|
1 |
|
|
|
|
|
|
|
|
|
2 |
|
|
|
|
|
|
|
|
|
3 |
|
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
OpLockLevel |
ResponseType |
FID |
|||||||||||||||||||||||||||||
CreateAction |
|||||||||||||||||||||||||||||||
EAErrorOffset |
|||||||||||||||||||||||||||||||
CreationTime (variable) |
|||||||||||||||||||||||||||||||
... |
|||||||||||||||||||||||||||||||
LastAccessTime (variable) |
|||||||||||||||||||||||||||||||
... |
|||||||||||||||||||||||||||||||
LastWriteTime (variable) |
|||||||||||||||||||||||||||||||
... |
|||||||||||||||||||||||||||||||
LastChangeTime (variable) |
|||||||||||||||||||||||||||||||
... |
|||||||||||||||||||||||||||||||
ExtFileAttributes |
|||||||||||||||||||||||||||||||
AllocationSize (variable) |
|||||||||||||||||||||||||||||||
... |
|||||||||||||||||||||||||||||||
EndOfFile (variable) |
|||||||||||||||||||||||||||||||
... |
|||||||||||||||||||||||||||||||
ResourceType |
NMPipeStatus_or_FileStatusFlags |
||||||||||||||||||||||||||||||
Directory |
VolumeGUID (16 bytes) |
||||||||||||||||||||||||||||||
... |
|||||||||||||||||||||||||||||||
... |
|||||||||||||||||||||||||||||||
... |
FileId |
||||||||||||||||||||||||||||||
... |
|||||||||||||||||||||||||||||||
... |
MaximalAccessRight |
||||||||||||||||||||||||||||||
... |
GuestMaximalAccessRights |
||||||||||||||||||||||||||||||
... |
ResponseType (1 byte): The response type received. This field MUST be set to any one of the following values, based on the response type.
-
Name & bitmask
Meaning
NON_EXTENDED_RESPONSE
0x00
Response received is not an extended response.
EXTENDED_RESPONSE
0x01
Response received is an extended response.
NMPipeStatus_or_FileStatusFlags (2 bytes): A union between the NMPipeStatus field and the new FileStatusFlags field. If the ResourceType field is a named pipe (FileTypeByteModePipe or FileTypeMessageModePipe), then this field MUST be the NMPipeStatus field:
-
0
1
2
3
4
5
6
7
8
91
0
1
2
3
4
5
6
7
8
92
0
1
2
3
4
5
6
7
8
93
0
1NMPipeStatus
FileStatusFlags
-
NMPipeStatus (2 bytes): A 16-bit field that shows the status of the opened named pipe. This field is formatted as an SMB_NMPIPE_STATUS ([MS-CIFS] section 2.2.1.3).
-
If the ResourceType field is FileTypeDisk, then this field MUST be the FileStatusFlags field.
-
-
FileStatusFlags (2 bytes): A 16-bit field that shows extra information about the opened file or directory. Any combination of the following flags is valid. Unused bit fields SHOULD be set to zero by the server and MUST be ignored by the client.
-
Name & bitmask
Meaning
NO_EAS
0x0001
The file or directory has no extended attributes.
NO_SUBSTREAMS
0x0002
The file or directory has no data streams other than the main data stream.
NO_REPARSETAG
0x0004
The file or directory is not a reparse point.
-
-
For all other values of ResourceType, this field SHOULD be set to zero by the server when sending a response and MUST be ignored when received by the client.
VolumeGUID (16 bytes): This field MUST be a GUID value that uniquely identifies the volume on which the file resides. This field MUST be zero if the underlying file system does not support volume GUIDs.<60>
FileId (8 bytes): This field MUST be a 64-bit opaque value that uniquely identifies this file on a volume. This field MUST be set to zero if the underlying file system does not support unique FileId numbers on a volume. If the underlying file system does support unique FileId numbers, then this value SHOULD<61> be set to the unique FileId for this file.
MaximalAccessRight (4 bytes): The maximum access rights that the user opening the file has been granted for this file open. This field MUST be encoded in an ACCESS_MASK format, as specified in section 2.2.1.4.
GuestMaximalAccessRights (4 bytes): The maximum access rights that the guest account has when opening this file. This field MUST be encoded in an ACCESS_MASK format, as specified in section 2.2.1.4. Note that the notion of a guest account is implementation-specific<62>. Implementations that do not support the notion of a guest account MUST set this field to zero.
If the FILE_OPEN_REPARSE_POINT flag bit is set in CreateOptions, and there is a symbolic link error, the server MUST return STATUS_STOPPED_ON_SYMLINK to the client.