3.2.4.12 Application Requests Querying File Attributes

The application provides:

  • A valid Client.Session.

  • The Client.TreeConnect representing the share in which the file to be queried exists.

  • If the file is not already open, the full pathname relative to the TID. Otherwise, attributes SHOULD be queried using a valid FID representing the opened file.

  • The Information Level that defines the format of the data to query, as specified in [MS-FSCC] section 2.4.

  • If the Information Level provided is SMB_INFO_QUERY_EAS_FROM_LIST, the application provides a list of extended attributes.

The client can use any of the following commands to query file attributes. The SMB_COM_QUERY_INFORMATION and SMB_COM_QUERY_INFORMATION2 commands are deprecated; the client SHOULD use the TRANS2_QUERY_PATH_INFORMATION or the TRANS2_QUERY_FILE_INFORMATION transaction subcommand instead. The transaction subcommands can also be used to query named pipe attributes. The client MUST map the application-provided Information Level to the Query Information Levels, as specified in section 2.2.8.

  • SMB_COM_QUERY_INFORMATION (deprecated)

    The client MUST construct the SMB_COM_QUERY_INFORMATION request as defined in section 2.2.4.9. This command retrieves the following file attributes:

    • Basic SMB_FILE_ATTRIBUTES, as described in section 2.2.1.2.4.

    • Last write time of the file.

    • The size of the file (limited to a 32-bit value).

      The file to be queried MUST be identified by a full pathname, relative to the TID.

  • SMB_COM_QUERY_INFORMATION2 (deprecated)

    The client MUST construct the SMB_COM_QUERY_INFORMATION2 request as defined in section 2.2.4.31. This command retrieves the following file attributes:

    • Basic SMB_FILE_ATTRIBUTES, as described in section 2.2.1.2.4.

    • The date and time of file creation, last access, and last write.

    • The file size (limited to a 32-bit value).

    • The file allocation size (limited to a 32-bit value), which can be larger than the actual number of bytes contained in the file.

      The file to be queried MUST be identified by a FID (an open file handle).

  • TRANS2_QUERY_PATH_INFORMATION

    The client MUST construct a TRANS2_QUERY_PATH_INFORMATION subcommand request as defined in section 2.2.6.6. The TRANS2_QUERY_PATH_INFORMATION request MUST be transported to the server using the Transaction2 subprotocol. This transaction subcommand provides access to extended file information, including:

    • Basic SMB_FILE_ATTRIBUTES, as described in section 2.2.1.2.4.

    • The creation time, last access time, and last write time attributes of the file.

    • The file size (limited to a 32-bit value).

    • The file allocation size (limited to a 32-bit value), which can be larger than the actual number of bytes contained in the file.

    • The number of bytes allocated to extended attribute name/value pairs.

    • Extended attributes.

    • The number of hard links to the file.

    • The file name and alternate file name.

    • The ability to list alternate file streams.

    • Whether or not the file is actually a directory.

    • Whether or not the file is marked for delete upon close.

    • Whether or not the file is compressed.

      The file to be queried MUST be identified by a full pathname, relative to the TID.

  • TRANS2_QUERY_FILE_INFORMATION

    The client MUST construct a TRANS2_QUERY_FILE_INFORMATION subcommand request as defined in section 2.2.6.8. The TRANS2_QUERY_FILE_INFORMATION request MUST be sent to the server using the Transaction2 subprotocol as a transport. This transaction is identical to TRANS2_QUERY_PATH_INFORMATION except that the file to be queried MUST be identified by FID rather than by pathname.

The request MUST be sent to the server as described in section 3.2.4.1.