libcli/smb: move smb2cli_set_info.c from source3 to the toplevel
[obnox/samba/samba-obnox.git] / source3 / libsmb / smb2cli.h
1 /*
2    Unix SMB/CIFS implementation.
3    smb2 client routines
4    Copyright (C) Volker Lendecke 2011
5
6    This program is free software; you can redistribute it and/or modify
7    it under the terms of the GNU General Public License as published by
8    the Free Software Foundation; either version 3 of the License, or
9    (at your option) any later version.
10
11    This program is distributed in the hope that it will be useful,
12    but WITHOUT ANY WARRANTY; without even the implied warranty of
13    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14    GNU General Public License for more details.
15
16    You should have received a copy of the GNU General Public License
17    along with this program.  If not, see <http://www.gnu.org/licenses/>.
18 */
19
20 #ifndef __SMB2CLI_H__
21 #define __SMB2CLI_H__
22
23 struct smbXcli_conn;
24 struct smbXcli_session;
25 struct cli_state;
26
27 struct tevent_req *smb2cli_tcon_send(TALLOC_CTX *mem_ctx,
28                                      struct tevent_context *ev,
29                                      struct cli_state *cli,
30                                      const char *share);
31 NTSTATUS smb2cli_tcon_recv(struct tevent_req *req);
32 NTSTATUS smb2cli_tcon(struct cli_state *cli, const char *share);
33
34 struct tevent_req *smb2cli_tdis_send(TALLOC_CTX *mem_ctx,
35                                      struct tevent_context *ev,
36                                      struct cli_state *cli);
37 NTSTATUS smb2cli_tdis_recv(struct tevent_req *req);
38 NTSTATUS smb2cli_tdis(struct cli_state *cli);
39
40 struct tevent_req *smb2cli_query_directory_send(TALLOC_CTX *mem_ctx,
41                                                 struct tevent_context *ev,
42                                                 struct smbXcli_conn *conn,
43                                                 uint32_t timeout_msec,
44                                                 struct smbXcli_session *session,
45                                                 uint32_t tcon_id,
46                                                 uint8_t level,
47                                                 uint8_t flags,
48                                                 uint32_t file_index,
49                                                 uint64_t fid_persistent,
50                                                 uint64_t fid_volatile,
51                                                 const char *mask,
52                                                 uint32_t outbuf_len);
53 NTSTATUS smb2cli_query_directory_recv(struct tevent_req *req,
54                                       TALLOC_CTX *mem_ctx,
55                                       uint8_t **data,
56                                       uint32_t *data_length);
57 NTSTATUS smb2cli_query_directory(struct smbXcli_conn *conn,
58                                  uint32_t timeout_msec,
59                                  struct smbXcli_session *session,
60                                  uint32_t tcon_id,
61                                  uint8_t level,
62                                  uint8_t flags,
63                                  uint32_t file_index,
64                                  uint64_t fid_persistent,
65                                  uint64_t fid_volatile,
66                                  const char *mask,
67                                  uint32_t outbuf_len,
68                                  TALLOC_CTX *mem_ctx,
69                                  uint8_t **data,
70                                  uint32_t *data_length);
71
72 struct tevent_req *smb2cli_ioctl_send(TALLOC_CTX *mem_ctx,
73                                       struct tevent_context *ev,
74                                       struct smbXcli_conn *conn,
75                                       uint32_t timeout_msec,
76                                       struct smbXcli_session *session,
77                                       uint32_t tcon_id,
78                                       uint64_t in_fid_persistent,
79                                       uint64_t in_fid_volatile,
80                                       uint32_t in_ctl_code,
81                                       uint32_t in_max_input_length,
82                                       const DATA_BLOB *in_input_buffer,
83                                       uint32_t in_max_output_length,
84                                       const DATA_BLOB *in_output_buffer,
85                                       uint32_t in_flags);
86 NTSTATUS smb2cli_ioctl_recv(struct tevent_req *req,
87                             TALLOC_CTX *mem_ctx,
88                             DATA_BLOB *out_input_buffer,
89                             DATA_BLOB *out_output_buffer);
90 NTSTATUS smb2cli_ioctl(struct smbXcli_conn *conn,
91                        uint32_t timeout_msec,
92                        struct smbXcli_session *session,
93                        uint32_t tcon_id,
94                        uint64_t in_fid_persistent,
95                        uint64_t in_fid_volatile,
96                        uint32_t in_ctl_code,
97                        uint32_t in_max_input_length,
98                        const DATA_BLOB *in_input_buffer,
99                        uint32_t in_max_output_length,
100                        const DATA_BLOB *in_output_buffer,
101                        uint32_t in_flags,
102                        TALLOC_CTX *mem_ctx,
103                        DATA_BLOB *out_input_buffer,
104                        DATA_BLOB *out_output_buffer);
105
106 struct tevent_req *smb2cli_query_info_send(TALLOC_CTX *mem_ctx,
107                                            struct tevent_context *ev,
108                                            struct smbXcli_conn *conn,
109                                            uint32_t timeout_msec,
110                                            struct smbXcli_session *session,
111                                            uint32_t tcon_id,
112                                            uint8_t in_info_type,
113                                            uint8_t in_file_info_class,
114                                            uint32_t in_max_output_length,
115                                            const DATA_BLOB *in_input_buffer,
116                                            uint32_t in_additional_info,
117                                            uint32_t in_flags,
118                                            uint64_t in_fid_persistent,
119                                            uint64_t in_fid_volatile);
120 NTSTATUS smb2cli_query_info_recv(struct tevent_req *req,
121                                  TALLOC_CTX *mem_ctx,
122                                  DATA_BLOB *out_output_buffer);
123 NTSTATUS smb2cli_query_info(struct smbXcli_conn *conn,
124                             uint32_t timeout_msec,
125                             struct smbXcli_session *session,
126                             uint32_t tcon_id,
127                             uint8_t in_info_type,
128                             uint8_t in_file_info_class,
129                             uint32_t in_max_output_length,
130                             const DATA_BLOB *in_input_buffer,
131                             uint32_t in_additional_info,
132                             uint32_t in_flags,
133                             uint64_t in_fid_persistent,
134                             uint64_t in_fid_volatile,
135                             TALLOC_CTX *mem_ctx,
136                             DATA_BLOB *out_output_buffer);
137
138 #endif /* __SMB2CLI_H__ */