2 Unix SMB/CIFS implementation.
4 Copyright (C) Volker Lendecke 2011
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.
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.
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/>.
24 struct smbXcli_session
;
27 struct tevent_req
*smb2cli_tcon_send(TALLOC_CTX
*mem_ctx
,
28 struct tevent_context
*ev
,
29 struct cli_state
*cli
,
31 NTSTATUS
smb2cli_tcon_recv(struct tevent_req
*req
);
32 NTSTATUS
smb2cli_tcon(struct cli_state
*cli
, const char *share
);
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
);
40 struct tevent_req
*smb2cli_flush_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
,
46 uint64_t fid_persistent
,
47 uint64_t fid_volatile
);
48 NTSTATUS
smb2cli_flush_recv(struct tevent_req
*req
);
49 NTSTATUS
smb2cli_flush(struct smbXcli_conn
*conn
,
50 uint32_t timeout_msec
,
51 struct smbXcli_session
*session
,
53 uint64_t fid_persistent
,
54 uint64_t fid_volatile
);
56 struct tevent_req
*smb2cli_write_send(TALLOC_CTX
*mem_ctx
,
57 struct tevent_context
*ev
,
58 struct smbXcli_conn
*conn
,
59 uint32_t timeout_msec
,
60 struct smbXcli_session
*session
,
64 uint64_t fid_persistent
,
65 uint64_t fid_volatile
,
66 uint32_t remaining_bytes
,
69 NTSTATUS
smb2cli_write_recv(struct tevent_req
*req
);
70 NTSTATUS
smb2cli_write(struct smbXcli_conn
*conn
,
71 uint32_t timeout_msec
,
72 struct smbXcli_session
*session
,
76 uint64_t fid_persistent
,
77 uint64_t fid_volatile
,
78 uint32_t remaining_bytes
,
82 struct tevent_req
*smb2cli_query_directory_send(TALLOC_CTX
*mem_ctx
,
83 struct tevent_context
*ev
,
84 struct smbXcli_conn
*conn
,
85 uint32_t timeout_msec
,
86 struct smbXcli_session
*session
,
91 uint64_t fid_persistent
,
92 uint64_t fid_volatile
,
95 NTSTATUS
smb2cli_query_directory_recv(struct tevent_req
*req
,
98 uint32_t *data_length
);
99 NTSTATUS
smb2cli_query_directory(struct smbXcli_conn
*conn
,
100 uint32_t timeout_msec
,
101 struct smbXcli_session
*session
,
106 uint64_t fid_persistent
,
107 uint64_t fid_volatile
,
112 uint32_t *data_length
);
114 struct tevent_req
*smb2cli_ioctl_send(TALLOC_CTX
*mem_ctx
,
115 struct tevent_context
*ev
,
116 struct smbXcli_conn
*conn
,
117 uint32_t timeout_msec
,
118 struct smbXcli_session
*session
,
120 uint64_t in_fid_persistent
,
121 uint64_t in_fid_volatile
,
122 uint32_t in_ctl_code
,
123 uint32_t in_max_input_length
,
124 const DATA_BLOB
*in_input_buffer
,
125 uint32_t in_max_output_length
,
126 const DATA_BLOB
*in_output_buffer
,
128 NTSTATUS
smb2cli_ioctl_recv(struct tevent_req
*req
,
130 DATA_BLOB
*out_input_buffer
,
131 DATA_BLOB
*out_output_buffer
);
132 NTSTATUS
smb2cli_ioctl(struct smbXcli_conn
*conn
,
133 uint32_t timeout_msec
,
134 struct smbXcli_session
*session
,
136 uint64_t in_fid_persistent
,
137 uint64_t in_fid_volatile
,
138 uint32_t in_ctl_code
,
139 uint32_t in_max_input_length
,
140 const DATA_BLOB
*in_input_buffer
,
141 uint32_t in_max_output_length
,
142 const DATA_BLOB
*in_output_buffer
,
145 DATA_BLOB
*out_input_buffer
,
146 DATA_BLOB
*out_output_buffer
);
148 struct tevent_req
*smb2cli_query_info_send(TALLOC_CTX
*mem_ctx
,
149 struct tevent_context
*ev
,
150 struct smbXcli_conn
*conn
,
151 uint32_t timeout_msec
,
152 struct smbXcli_session
*session
,
154 uint8_t in_info_type
,
155 uint8_t in_file_info_class
,
156 uint32_t in_max_output_length
,
157 const DATA_BLOB
*in_input_buffer
,
158 uint32_t in_additional_info
,
160 uint64_t in_fid_persistent
,
161 uint64_t in_fid_volatile
);
162 NTSTATUS
smb2cli_query_info_recv(struct tevent_req
*req
,
164 DATA_BLOB
*out_output_buffer
);
165 NTSTATUS
smb2cli_query_info(struct smbXcli_conn
*conn
,
166 uint32_t timeout_msec
,
167 struct smbXcli_session
*session
,
169 uint8_t in_info_type
,
170 uint8_t in_file_info_class
,
171 uint32_t in_max_output_length
,
172 const DATA_BLOB
*in_input_buffer
,
173 uint32_t in_additional_info
,
175 uint64_t in_fid_persistent
,
176 uint64_t in_fid_volatile
,
178 DATA_BLOB
*out_output_buffer
);
180 struct tevent_req
*smb2cli_set_info_send(TALLOC_CTX
*mem_ctx
,
181 struct tevent_context
*ev
,
182 struct smbXcli_conn
*conn
,
183 uint32_t timeout_msec
,
184 struct smbXcli_session
*session
,
186 uint8_t in_info_type
,
187 uint8_t in_file_info_class
,
188 const DATA_BLOB
*in_input_buffer
,
189 uint32_t in_additional_info
,
190 uint64_t in_fid_persistent
,
191 uint64_t in_fid_volatile
);
192 NTSTATUS
smb2cli_set_info_recv(struct tevent_req
*req
);
193 NTSTATUS
smb2cli_set_info(struct smbXcli_conn
*conn
,
194 uint32_t timeout_msec
,
195 struct smbXcli_session
*session
,
197 uint8_t in_info_type
,
198 uint8_t in_file_info_class
,
199 const DATA_BLOB
*in_input_buffer
,
200 uint32_t in_additional_info
,
201 uint64_t in_fid_persistent
,
202 uint64_t in_fid_volatile
);
204 #endif /* __SMB2CLI_H__ */