3.3.5.11 Receiving an SMB_COM_QUERY_INFORMATION Request

When the server receives an SMB_COM_QUERY_INFORMATION Request (section 2.2.4.9.1), it MUST query the file system metadata of the file identified in the FileName field of the request. The FileName field MUST be the full path, relative to the supplied TID, of the file being queried. The server MUST query the file information through the FILE_NETWORK_OPEN_INFORMATION OutputBuffer from the underlying object store with information level FileNetworkOpenInformation ([MS-FSCC] section 2.4.27).<260>

If the file exists and the operation is successful, the server MUST construct an SMB_COM_QUERY_INFORMATION response message as specified in section 2.2.4.9.2. The server MUST return the following information:

  • FileAttributes in SMB_FILE_ATTRIBUTES format, as specified in section 2.2.1.2.4.

  • The LastWriteTime of the file, presented in UTIME format.

  • FileSize, which is the size of the file in bytes. FileSize is a 32-bit value. If the file is larger than 2 ** 32 - 1 bytes in size, only the lower 32 bits of the file size are returned. No error message is sent to indicate this condition.

  • If the query fails, the Status is set to the error code received from the object store and is returned in an Error Response, and processing is complete. Otherwise, the response message fields are populated as follows:

    • SMB_Parameters.Words.FileAttributes is set to OutputBuffer.FileAttributes.

    • SMB_Parameters.Words.LastWriteTime is set to OutputBuffer.LastWriteTime.

    • SMB_Parameters.Words.FileSize is set to OutputBuffer.EndOfFile.

The response MUST be sent to the client as specified in section 3.3.4.1.