Differences between revisions 11 and 12
Revision 11 as of 2005-11-11 13:14:30
Size: 4149
Comment: fid is 16 bytes
Revision 12 as of 2005-11-12 09:33:11
Size: 4498
Comment: some of the unknown data is class/level specific
Deletions are marked like this. Additions are marked like this.
Line 94: Line 94:
Some of the 16 bytes between maxresponsebuffersize and the fid in the request holds data specific to the class/level used and will alter what kind of data is returned.
Bytes 8-11 have been seen to definitely fall in this range. but it could be bytes 4-15 or even all of them.
This blob should be documented on the corresponding class/level page.

SMB2/GetInfo

Opcode 0x10

This command can be used to get information about files and other types of objects from the server.

SMB2/GetInfo Request

SMB2/GetInfo Request Packet Format

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|               |               |     Class     |   InfoLevel   |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                   Max Response Buffer Size                    |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|               |               |               |               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|               |               |               |               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|               |               |               |               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|               |               |               |               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                                                               |
+-+-+-+-+                      FID                      +-+-+-+-+
|                                                               |
+-+-+-+-+                                               +-+-+-+-+
|                                                               |
+-+-+-+-+                                               +-+-+-+-+
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Class

Class specifies what type of object we want information about.

0x01     SMB2_CLASS_FILE_INFO
0x02     SMB2_CLASS_FS_INFO
0x03     SMB2_CLASS_SEC_INFO

InfoLevel

Infolevel together with Class specific a specific type of information to be returned.

Infolevels for SMB2_CLASS_FILE_INFO

  • 0x0a ["SMB2/SMB2_FILE_INFO_0a"] (Set Filename used to rename files)
  • 0x0d ["SMB2/SMB2_FILE_INFO_0d"]
  • 0x12 ["SMB2/SMB2_FILE_INFO_12"]
  • 0x22 ["SMB2/SMB2_FILE_INFO_22"]

Infolevels for SMB2_CLASS_FS_INFO

  • 0x01 ["SMB2/SMB2_FS_INFO_1"]
  • 0x03 ["SMB2/SMB2_FS_INFO_3"]
  • 0x05 ["SMB2/SMB2_FS_INFO_5"]
  • 0x07 ["SMB2/SMB2_FS_INFO_7"]

Infolevels for SMB2_CLASS_SEC_INFO

  • 0x00 ["SMB2/SMB2_SEC_INFO_00"]

Max Response Buffer Size

This field specifies the maximum amount of data that the server can send back in the response. If the response is truncated the server will set the NT Status Code STATUS_BUFFER_OVERFLOW

SMB2/GetInfo Response

SMB2/GetInfo Response Packet Format

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|               |               |               |               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                      Response Buffer Size                     |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|    Data depending of Class/Infolevel in the request
+-+-+-+-+...

or 
if STATUS_BUFFER_TOO_SMALL
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|               |               |               |               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                   Response Buffer Size == 4                   |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                       Required Buffer Size                    |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Response Buffer Size

The number of bytes of returned data that follows.

NT Status Codes

  • 0xc0000023 STATUS_BUTTER_TOO_SMALL This indicates that the buffer was too small to hold the returned data. The response packet will only contain 4 bytes which represents the required size of the buffer.
  • 0x80000005 STATUS_BUFFER_OVERFLOW This indicates that the buffer was too small and that the response data is truncated. There is no indication of how big the buffer needs to be.

Discussion

Some of the 16 bytes between maxresponsebuffersize and the fid in the request holds data specific to the class/level used and will alter what kind of data is returned. Bytes 8-11 have been seen to definitely fall in this range. but it could be bytes 4-15 or even all of them. This blob should be documented on the corresponding class/level page.

SMB2/GetInfo (last edited 2008-05-05 07:15:50 by GuyHarris)