root/source4/libcli/smb2/smb2_calls.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


   1 /* 
   2    Unix SMB/CIFS implementation.
   3 
   4    SMB2 client calls 
   5 
   6    Copyright (C) Andrew Tridgell 2005
   7    
   8    This program is free software; you can redistribute it and/or modify
   9    it under the terms of the GNU General Public License as published by
  10    the Free Software Foundation; either version 3 of the License, or
  11    (at your option) any later version.
  12    
  13    This program is distributed in the hope that it will be useful,
  14    but WITHOUT ANY WARRANTY; without even the implied warranty of
  15    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  16    GNU General Public License for more details.
  17    
  18    You should have received a copy of the GNU General Public License
  19    along with this program.  If not, see <http://www.gnu.org/licenses/>.
  20 */
  21 
  22 #include "libcli/raw/interfaces.h"
  23 
  24 struct smb2_negprot {
  25         struct {
  26                 uint16_t dialect_count;    /* size of dialects array */
  27                 uint16_t security_mode;    /* 0==signing disabled   
  28                                               1==signing enabled */
  29                 uint16_t reserved;
  30                 uint32_t capabilities;
  31                 struct GUID client_guid;
  32                 NTTIME   start_time;
  33                 uint16_t *dialects;
  34         } in;
  35         struct {
  36                 /* static body buffer 64 (0x40) bytes */
  37                 /* uint16_t buffer_code;  0x41 = 0x40 + 1 */
  38                 uint16_t security_mode; /* SMB2_NEGOTIATE_SIGNING_* */
  39                 uint16_t dialect_revision;
  40                 uint16_t reserved;
  41                 struct GUID server_guid;
  42                 uint32_t capabilities;
  43                 uint32_t max_transact_size;
  44                 uint32_t max_read_size;
  45                 uint32_t max_write_size;
  46                 NTTIME   system_time;
  47                 NTTIME   server_start_time;
  48                 /* uint16_t secblob_ofs */
  49                 /* uint16_t secblob_size */
  50                 uint32_t reserved2;
  51                 DATA_BLOB secblob;
  52         } out;
  53 };
  54 
  55 /* getinfo classes */
  56 #define SMB2_GETINFO_FILE               0x01
  57 #define SMB2_GETINFO_FS                 0x02
  58 #define SMB2_GETINFO_SECURITY           0x03
  59 #define SMB2_GETINFO_QUOTA              0x04
  60 
  61 #define SMB2_GETINFO_ADD_OWNER_SECURITY 0x01
  62 #define SMB2_GETINFO_ADD_GROUP_SECURITY 0x02
  63 #define SMB2_GETINFO_ADD_DACL_SECURITY  0x04
  64 #define SMB2_GETINFO_ADD_SACL_SECURITY  0x08
  65 #define SMB2_GETINFO_ADD_LABEL_SECURITY 0x10
  66 
  67 /* NOTE! the getinfo fs and file levels exactly match up with the
  68    'passthru' SMB levels, which are levels >= 1000. The SMB2 client
  69    lib uses the names from the libcli/raw/ library */
  70 
  71 struct smb2_getinfo {
  72         struct {
  73                 /* static body buffer 40 (0x28) bytes */
  74                 /* uint16_t buffer_code;  0x29 = 0x28 + 1 */
  75                 uint8_t info_type;
  76                 uint8_t info_class;
  77                 uint32_t output_buffer_length;
  78                 /* uint32_t input_buffer_offset; */
  79                 uint32_t reserved;
  80                 uint32_t input_buffer_length;
  81                 uint32_t additional_information; /* SMB2_GETINFO_ADD_* */
  82                 uint32_t getinfo_flags; /* level specific */
  83                 union smb_handle file;
  84                 DATA_BLOB blob;
  85         } in;
  86 
  87         struct {
  88                 /* static body buffer 8 (0x08) bytes */
  89                 /* uint16_t buffer_code; 0x09 = 0x08 + 1 */
  90                 /* uint16_t blob_ofs; */
  91                 /* uint16_t blob_size; */
  92 
  93                 /* dynamic body */
  94                 DATA_BLOB blob;
  95         } out;
  96 };
  97 
  98 struct smb2_setinfo {
  99         struct {
 100                 uint16_t level;
 101                 uint32_t flags;
 102                 union smb_handle file;
 103                 DATA_BLOB blob;
 104         } in;
 105 };
 106 
 107 struct cli_credentials;
 108 struct tevent_context;
 109 struct resolve_context;
 110 struct gensec_settings;
 111 #include "libcli/smb2/smb2_proto.h"

/* [<][>][^][v][top][bottom][index][help] */