2011-08-11 13:29:59 +02:00
/*
Unix SMB / CIFS implementation .
Infrastructure for async SMB client requests
Copyright ( C ) Volker Lendecke 2008
Copyright ( C ) Stefan Metzmacher 2011
This program is free software ; you can redistribute it and / or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation ; either version 3 of the License , or
( at your option ) any later version .
This program is distributed in the hope that it will be useful ,
but WITHOUT ANY WARRANTY ; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE . See the
GNU General Public License for more details .
You should have received a copy of the GNU General Public License
along with this program . If not , see < http : //www.gnu.org/licenses/>.
*/
# ifndef _SMBXCLI_BASE_H_
# define _SMBXCLI_BASE_H_
2019-03-21 11:21:21 +01:00
# define SMB_SUICIDE_PACKET 0x74697865
2011-08-11 13:29:59 +02:00
struct smbXcli_conn ;
2011-09-03 10:18:17 +02:00
struct smbXcli_session ;
2012-06-02 18:03:20 +02:00
struct smbXcli_tcon ;
2011-08-11 13:29:59 +02:00
struct smb_trans_enc_state ;
2011-09-15 13:21:42 +02:00
struct GUID ;
2012-08-07 07:24:22 +02:00
struct iovec ;
struct smb2_create_blobs ;
2014-05-08 20:08:41 -07:00
struct smb_create_returns ;
2021-03-09 23:49:19 +01:00
struct smb311_capabilities ;
2011-08-11 13:29:59 +02:00
struct smbXcli_conn * smbXcli_conn_create ( TALLOC_CTX * mem_ctx ,
int fd ,
const char * remote_name ,
enum smb_signing_setting signing_state ,
2011-09-15 13:21:42 +02:00
uint32_t smb1_capabilities ,
2012-02-29 02:02:29 +01:00
struct GUID * client_guid ,
2021-03-09 23:49:19 +01:00
uint32_t smb2_capabilities ,
const struct smb311_capabilities * smb3_capabilities ) ;
2011-08-11 13:29:59 +02:00
bool smbXcli_conn_is_connected ( struct smbXcli_conn * conn ) ;
void smbXcli_conn_disconnect ( struct smbXcli_conn * conn , NTSTATUS status ) ;
2019-08-29 10:28:14 +00:00
struct tevent_queue * smbXcli_conn_send_queue ( struct smbXcli_conn * conn ) ;
2011-08-11 13:29:59 +02:00
bool smbXcli_conn_has_async_calls ( struct smbXcli_conn * conn ) ;
2013-05-17 20:41:45 +02:00
bool smbXcli_conn_dfs_supported ( struct smbXcli_conn * conn ) ;
2011-08-11 13:29:59 +02:00
enum protocol_types smbXcli_conn_protocol ( struct smbXcli_conn * conn ) ;
bool smbXcli_conn_use_unicode ( struct smbXcli_conn * conn ) ;
2017-08-29 15:35:49 +02:00
bool smbXcli_conn_signing_mandatory ( struct smbXcli_conn * conn ) ;
2017-03-26 08:10:34 +03:00
bool smbXcli_conn_support_passthrough ( struct smbXcli_conn * conn ) ;
2011-08-11 13:29:59 +02:00
void smbXcli_conn_set_sockopt ( struct smbXcli_conn * conn , const char * options ) ;
const struct sockaddr_storage * smbXcli_conn_local_sockaddr ( struct smbXcli_conn * conn ) ;
const struct sockaddr_storage * smbXcli_conn_remote_sockaddr ( struct smbXcli_conn * conn ) ;
const char * smbXcli_conn_remote_name ( struct smbXcli_conn * conn ) ;
2011-09-15 14:02:49 +02:00
uint16_t smbXcli_conn_max_requests ( struct smbXcli_conn * conn ) ;
NTTIME smbXcli_conn_server_system_time ( struct smbXcli_conn * conn ) ;
const DATA_BLOB * smbXcli_conn_server_gss_blob ( struct smbXcli_conn * conn ) ;
const struct GUID * smbXcli_conn_server_guid ( struct smbXcli_conn * conn ) ;
2018-01-11 11:25:49 +01:00
bool smbXcli_conn_get_force_channel_sequence ( struct smbXcli_conn * conn ) ;
void smbXcli_conn_set_force_channel_sequence ( struct smbXcli_conn * conn ,
bool v ) ;
2011-09-15 14:02:49 +02:00
2012-01-04 13:28:07 +01:00
struct tevent_req * smbXcli_conn_samba_suicide_send ( TALLOC_CTX * mem_ctx ,
struct tevent_context * ev ,
struct smbXcli_conn * conn ,
uint8_t exitcode ) ;
NTSTATUS smbXcli_conn_samba_suicide_recv ( struct tevent_req * req ) ;
NTSTATUS smbXcli_conn_samba_suicide ( struct smbXcli_conn * conn ,
uint8_t exitcode ) ;
2011-08-11 13:29:59 +02:00
void smbXcli_req_unset_pending ( struct tevent_req * req ) ;
bool smbXcli_req_set_pending ( struct tevent_req * req ) ;
2018-10-28 02:03:28 +01:00
struct timeval smbXcli_req_endtime ( struct tevent_req * req ) ;
2011-08-11 13:29:59 +02:00
2011-09-15 14:02:49 +02:00
uint32_t smb1cli_conn_capabilities ( struct smbXcli_conn * conn ) ;
uint32_t smb1cli_conn_max_xmit ( struct smbXcli_conn * conn ) ;
2013-08-13 14:05:05 +02:00
bool smb1cli_conn_req_possible ( struct smbXcli_conn * conn ) ;
2011-09-15 14:02:49 +02:00
uint32_t smb1cli_conn_server_session_key ( struct smbXcli_conn * conn ) ;
const uint8_t * smb1cli_conn_server_challenge ( struct smbXcli_conn * conn ) ;
uint16_t smb1cli_conn_server_security_mode ( struct smbXcli_conn * conn ) ;
2011-11-25 15:13:38 +01:00
bool smb1cli_conn_server_readbraw ( struct smbXcli_conn * conn ) ;
bool smb1cli_conn_server_writebraw ( struct smbXcli_conn * conn ) ;
bool smb1cli_conn_server_lockread ( struct smbXcli_conn * conn ) ;
bool smb1cli_conn_server_writeunlock ( struct smbXcli_conn * conn ) ;
2011-09-15 14:02:49 +02:00
int smb1cli_conn_server_time_zone ( struct smbXcli_conn * conn ) ;
2011-08-11 13:29:59 +02:00
bool smb1cli_conn_activate_signing ( struct smbXcli_conn * conn ,
const DATA_BLOB user_session_key ,
const DATA_BLOB response ) ;
bool smb1cli_conn_check_signing ( struct smbXcli_conn * conn ,
const uint8_t * buf , uint32_t seqnum ) ;
bool smb1cli_conn_signing_is_active ( struct smbXcli_conn * conn ) ;
void smb1cli_conn_set_encryption ( struct smbXcli_conn * conn ,
struct smb_trans_enc_state * es ) ;
bool smb1cli_conn_encryption_on ( struct smbXcli_conn * conn ) ;
bool smb1cli_is_andx_req ( uint8_t cmd ) ;
size_t smb1cli_req_wct_ofs ( struct tevent_req * * reqs , int num_reqs ) ;
uint16_t smb1cli_req_mid ( struct tevent_req * req ) ;
void smb1cli_req_set_mid ( struct tevent_req * req , uint16_t mid ) ;
uint32_t smb1cli_req_seqnum ( struct tevent_req * req ) ;
void smb1cli_req_set_seqnum ( struct tevent_req * req , uint32_t seqnum ) ;
2011-11-16 11:37:05 +01:00
struct smb1cli_req_expected_response {
NTSTATUS status ;
uint8_t wct ;
} ;
2011-08-11 13:29:59 +02:00
struct tevent_req * smb1cli_req_create ( TALLOC_CTX * mem_ctx ,
struct tevent_context * ev ,
struct smbXcli_conn * conn ,
uint8_t smb_command ,
uint8_t additional_flags ,
uint8_t clear_flags ,
uint16_t additional_flags2 ,
uint16_t clear_flags2 ,
uint32_t timeout_msec ,
uint32_t pid ,
2012-07-23 21:34:58 +02:00
struct smbXcli_tcon * tcon ,
2012-07-23 20:15:21 +02:00
struct smbXcli_session * session ,
2011-08-11 13:29:59 +02:00
uint8_t wct , uint16_t * vwv ,
int iov_count ,
struct iovec * bytes_iov ) ;
NTSTATUS smb1cli_req_chain_submit ( struct tevent_req * * reqs , int num_reqs ) ;
struct tevent_req * smb1cli_req_send ( TALLOC_CTX * mem_ctx ,
struct tevent_context * ev ,
struct smbXcli_conn * conn ,
uint8_t smb_command ,
uint8_t additional_flags ,
uint8_t clear_flags ,
uint16_t additional_flags2 ,
uint16_t clear_flags2 ,
uint32_t timeout_msec ,
uint32_t pid ,
2012-07-23 21:34:58 +02:00
struct smbXcli_tcon * tcon ,
2012-07-23 20:15:21 +02:00
struct smbXcli_session * session ,
2011-08-11 13:29:59 +02:00
uint8_t wct , uint16_t * vwv ,
uint32_t num_bytes ,
const uint8_t * bytes ) ;
NTSTATUS smb1cli_req_recv ( struct tevent_req * req ,
2011-11-16 11:37:05 +01:00
TALLOC_CTX * mem_ctx ,
struct iovec * * piov ,
uint8_t * * phdr ,
uint8_t * pwct ,
uint16_t * * pvwv ,
uint32_t * pvwv_offset ,
uint32_t * pnum_bytes ,
uint8_t * * pbytes ,
uint32_t * pbytes_offset ,
uint8_t * * pinbuf ,
const struct smb1cli_req_expected_response * expected ,
size_t num_expected ) ;
2011-08-11 13:29:59 +02:00
2011-09-17 23:38:09 +02:00
struct tevent_req * smb1cli_trans_send (
TALLOC_CTX * mem_ctx , struct tevent_context * ev ,
struct smbXcli_conn * conn , uint8_t cmd ,
uint8_t additional_flags , uint8_t clear_flags ,
uint16_t additional_flags2 , uint16_t clear_flags2 ,
uint32_t timeout_msec ,
2012-07-23 21:34:58 +02:00
uint32_t pid ,
struct smbXcli_tcon * tcon ,
2012-07-23 20:15:21 +02:00
struct smbXcli_session * session ,
2011-09-17 23:38:09 +02:00
const char * pipe_name , uint16_t fid , uint16_t function , int flags ,
uint16_t * setup , uint8_t num_setup , uint8_t max_setup ,
uint8_t * param , uint32_t num_param , uint32_t max_param ,
uint8_t * data , uint32_t num_data , uint32_t max_data ) ;
NTSTATUS smb1cli_trans_recv ( struct tevent_req * req , TALLOC_CTX * mem_ctx ,
uint16_t * recv_flags2 ,
uint16_t * * setup , uint8_t min_setup ,
uint8_t * num_setup ,
uint8_t * * param , uint32_t min_param ,
uint32_t * num_param ,
uint8_t * * data , uint32_t min_data ,
uint32_t * num_data ) ;
NTSTATUS smb1cli_trans ( TALLOC_CTX * mem_ctx , struct smbXcli_conn * conn ,
uint8_t trans_cmd ,
uint8_t additional_flags , uint8_t clear_flags ,
uint16_t additional_flags2 , uint16_t clear_flags2 ,
uint32_t timeout_msec ,
2012-07-23 21:34:58 +02:00
uint32_t pid ,
struct smbXcli_tcon * tcon ,
2012-07-23 20:15:21 +02:00
struct smbXcli_session * session ,
2011-09-17 23:38:09 +02:00
const char * pipe_name , uint16_t fid , uint16_t function ,
int flags ,
uint16_t * setup , uint8_t num_setup , uint8_t max_setup ,
uint8_t * param , uint32_t num_param , uint32_t max_param ,
uint8_t * data , uint32_t num_data , uint32_t max_data ,
uint16_t * recv_flags2 ,
uint16_t * * rsetup , uint8_t min_rsetup , uint8_t * num_rsetup ,
uint8_t * * rparam , uint32_t min_rparam , uint32_t * num_rparam ,
uint8_t * * rdata , uint32_t min_rdata , uint32_t * num_rdata ) ;
2012-09-28 19:53:16 +02:00
struct tevent_req * smb1cli_echo_send ( TALLOC_CTX * mem_ctx ,
struct tevent_context * ev ,
struct smbXcli_conn * conn ,
uint32_t timeout_msec ,
uint16_t num_echos ,
DATA_BLOB data ) ;
NTSTATUS smb1cli_echo_recv ( struct tevent_req * req ) ;
NTSTATUS smb1cli_echo ( struct smbXcli_conn * conn , uint32_t timeout_msec ,
uint16_t num_echos , DATA_BLOB data ) ;
2016-11-03 16:28:12 +01:00
struct tevent_req * smb1cli_session_setup_lm21_send ( TALLOC_CTX * mem_ctx ,
struct tevent_context * ev ,
struct smbXcli_conn * conn ,
uint32_t timeout_msec ,
uint32_t pid ,
struct smbXcli_session * session ,
uint16_t in_buf_size ,
uint16_t in_mpx_max ,
uint16_t in_vc_num ,
uint32_t in_sess_key ,
const char * in_user ,
const char * in_domain ,
const DATA_BLOB in_password ,
const char * in_native_os ,
const char * in_native_lm ) ;
NTSTATUS smb1cli_session_setup_lm21_recv ( struct tevent_req * req ,
TALLOC_CTX * mem_ctx ,
char * * out_native_os ,
char * * out_native_lm ) ;
2016-10-25 15:40:59 +02:00
struct tevent_req * smb1cli_session_setup_nt1_send ( TALLOC_CTX * mem_ctx ,
struct tevent_context * ev ,
struct smbXcli_conn * conn ,
uint32_t timeout_msec ,
uint32_t pid ,
struct smbXcli_session * session ,
uint16_t in_buf_size ,
uint16_t in_mpx_max ,
uint16_t in_vc_num ,
uint32_t in_sess_key ,
const char * in_user ,
const char * in_domain ,
const DATA_BLOB in_apassword ,
const DATA_BLOB in_upassword ,
uint32_t in_capabilities ,
const char * in_native_os ,
const char * in_native_lm ) ;
NTSTATUS smb1cli_session_setup_nt1_recv ( struct tevent_req * req ,
TALLOC_CTX * mem_ctx ,
struct iovec * * precv_iov ,
const uint8_t * * precv_inbuf ,
char * * out_native_os ,
char * * out_native_lm ,
char * * out_primary_domain ) ;
2016-10-25 21:01:37 +02:00
struct tevent_req * smb1cli_session_setup_ext_send ( TALLOC_CTX * mem_ctx ,
struct tevent_context * ev ,
struct smbXcli_conn * conn ,
uint32_t timeout_msec ,
uint32_t pid ,
struct smbXcli_session * session ,
uint16_t in_buf_size ,
uint16_t in_mpx_max ,
uint16_t in_vc_num ,
uint32_t in_sess_key ,
const DATA_BLOB in_security_blob ,
uint32_t in_capabilities ,
const char * in_native_os ,
const char * in_native_lm ) ;
NTSTATUS smb1cli_session_setup_ext_recv ( struct tevent_req * req ,
TALLOC_CTX * mem_ctx ,
struct iovec * * precv_iov ,
const uint8_t * * precv_inbuf ,
DATA_BLOB * out_security_blob ,
char * * out_native_os ,
char * * out_native_lm ) ;
2016-11-03 16:28:12 +01:00
2013-09-10 10:43:35 +02:00
struct tevent_req * smb1cli_ntcreatex_send ( TALLOC_CTX * mem_ctx ,
struct tevent_context * ev ,
struct smbXcli_conn * conn ,
uint32_t timeout_msec ,
uint32_t pid ,
struct smbXcli_tcon * tcon ,
struct smbXcli_session * session ,
const char * fname ,
uint32_t CreatFlags ,
uint32_t RootDirectoryFid ,
uint32_t DesiredAccess ,
uint64_t AllocationSize ,
uint32_t FileAttributes ,
uint32_t ShareAccess ,
uint32_t CreateDisposition ,
uint32_t CreateOptions ,
uint32_t ImpersonationLevel ,
uint8_t SecurityFlags ) ;
NTSTATUS smb1cli_ntcreatex_recv ( struct tevent_req * req , uint16_t * pfnum ) ;
NTSTATUS smb1cli_ntcreatex ( struct smbXcli_conn * conn ,
uint32_t timeout_msec ,
uint32_t pid ,
struct smbXcli_tcon * tcon ,
struct smbXcli_session * session ,
const char * fname ,
uint32_t CreatFlags ,
uint32_t RootDirectoryFid ,
uint32_t DesiredAccess ,
uint64_t AllocationSize ,
uint32_t FileAttributes ,
uint32_t ShareAccess ,
uint32_t CreateDisposition ,
uint32_t CreateOptions ,
uint32_t ImpersonationLevel ,
uint8_t SecurityFlags ,
uint16_t * pfnum ) ;
2013-09-12 09:51:01 +02:00
struct tevent_req * smb1cli_close_send ( TALLOC_CTX * mem_ctx ,
struct tevent_context * ev ,
struct smbXcli_conn * conn ,
uint32_t timeout_msec ,
uint32_t pid ,
struct smbXcli_tcon * tcon ,
struct smbXcli_session * session ,
uint16_t fnum ,
uint32_t last_modified ) ;
NTSTATUS smb1cli_close_recv ( struct tevent_req * req ) ;
NTSTATUS smb1cli_close ( struct smbXcli_conn * conn ,
uint32_t timeout_msec ,
uint32_t pid ,
struct smbXcli_tcon * tcon ,
struct smbXcli_session * session ,
uint16_t fnum ,
uint32_t last_modified ) ;
2013-09-12 11:31:48 +02:00
struct tevent_req * smb1cli_writex_send ( TALLOC_CTX * mem_ctx ,
struct tevent_context * ev ,
struct smbXcli_conn * conn ,
uint32_t timeout_msec ,
uint32_t pid ,
struct smbXcli_tcon * tcon ,
struct smbXcli_session * session ,
uint16_t fnum ,
uint16_t mode ,
const uint8_t * buf ,
uint64_t offset ,
uint32_t size ) ;
NTSTATUS smb1cli_writex_recv ( struct tevent_req * req ,
uint32_t * pwritten ,
uint16_t * pavailable ) ;
NTSTATUS smb1cli_writex ( struct smbXcli_conn * conn ,
uint32_t timeout_msec ,
uint32_t pid ,
struct smbXcli_tcon * tcon ,
struct smbXcli_session * session ,
uint16_t fnum ,
uint16_t mode ,
const uint8_t * buf ,
uint64_t offset ,
uint32_t size ,
uint32_t * pwritten ,
uint16_t * pavailable ) ;
2013-09-12 14:35:35 +02:00
struct tevent_req * smb1cli_readx_send ( TALLOC_CTX * mem_ctx ,
struct tevent_context * ev ,
struct smbXcli_conn * conn ,
uint32_t timeout_msec ,
uint32_t pid ,
struct smbXcli_tcon * tcon ,
struct smbXcli_session * session ,
uint16_t fnum ,
uint64_t offset ,
uint32_t size ) ;
NTSTATUS smb1cli_readx_recv ( struct tevent_req * req ,
uint32_t * received ,
uint8_t * * rcvbuf ) ;
2013-09-10 10:43:35 +02:00
2013-08-13 15:49:19 +02:00
bool smb2cli_conn_req_possible ( struct smbXcli_conn * conn , uint32_t * max_dyn_len ) ;
2011-09-15 14:02:49 +02:00
uint32_t smb2cli_conn_server_capabilities ( struct smbXcli_conn * conn ) ;
uint16_t smb2cli_conn_server_security_mode ( struct smbXcli_conn * conn ) ;
2021-07-14 16:23:54 +02:00
uint16_t smb2cli_conn_server_signing_algo ( struct smbXcli_conn * conn ) ;
uint16_t smb2cli_conn_server_encryption_algo ( struct smbXcli_conn * conn ) ;
2011-09-15 14:02:49 +02:00
uint32_t smb2cli_conn_max_trans_size ( struct smbXcli_conn * conn ) ;
uint32_t smb2cli_conn_max_read_size ( struct smbXcli_conn * conn ) ;
uint32_t smb2cli_conn_max_write_size ( struct smbXcli_conn * conn ) ;
2011-09-06 17:52:02 +02:00
void smb2cli_conn_set_max_credits ( struct smbXcli_conn * conn ,
uint16_t max_credits ) ;
2017-02-27 12:29:25 +01:00
uint16_t smb2cli_conn_get_cur_credits ( struct smbXcli_conn * conn ) ;
2015-05-08 12:52:23 +02:00
uint8_t smb2cli_conn_get_io_priority ( struct smbXcli_conn * conn ) ;
void smb2cli_conn_set_io_priority ( struct smbXcli_conn * conn ,
uint8_t io_priority ) ;
2015-05-27 23:13:15 +01:00
uint32_t smb2cli_conn_cc_chunk_len ( struct smbXcli_conn * conn ) ;
void smb2cli_conn_set_cc_chunk_len ( struct smbXcli_conn * conn ,
uint32_t chunk_len ) ;
uint32_t smb2cli_conn_cc_max_chunks ( struct smbXcli_conn * conn ) ;
void smb2cli_conn_set_cc_max_chunks ( struct smbXcli_conn * conn ,
uint32_t max_chunks ) ;
2017-02-26 09:28:12 +01:00
void smb2cli_conn_set_mid ( struct smbXcli_conn * conn , uint64_t mid ) ;
uint64_t smb2cli_conn_get_mid ( struct smbXcli_conn * conn ) ;
2011-09-15 14:02:49 +02:00
2021-06-29 15:24:13 +02:00
NTSTATUS smb2cli_parse_dyn_buffer ( uint32_t dyn_offset ,
const DATA_BLOB dyn_buffer ,
uint32_t min_offset ,
uint32_t buffer_offset ,
uint32_t buffer_length ,
uint32_t max_length ,
uint32_t * next_offset ,
DATA_BLOB * buffer ) ;
2011-09-15 11:47:11 +02:00
struct tevent_req * smb2cli_req_create ( TALLOC_CTX * mem_ctx ,
struct tevent_context * ev ,
2011-09-15 12:23:05 +02:00
struct smbXcli_conn * conn ,
2011-09-15 11:47:11 +02:00
uint16_t cmd ,
uint32_t additional_flags ,
uint32_t clear_flags ,
2011-09-15 12:23:05 +02:00
uint32_t timeout_msec ,
2012-07-25 10:36:27 +02:00
struct smbXcli_tcon * tcon ,
2011-09-03 10:18:17 +02:00
struct smbXcli_session * session ,
2011-09-15 11:47:11 +02:00
const uint8_t * fixed ,
uint16_t fixed_len ,
const uint8_t * dyn ,
2013-08-13 09:54:42 +02:00
uint32_t dyn_len ,
uint32_t max_dyn_len ) ;
2011-10-27 17:20:27 +02:00
void smb2cli_req_set_notify_async ( struct tevent_req * req ) ;
2011-09-15 11:47:11 +02:00
NTSTATUS smb2cli_req_compound_submit ( struct tevent_req * * reqs ,
int num_reqs ) ;
2011-09-06 17:52:02 +02:00
void smb2cli_req_set_credit_charge ( struct tevent_req * req , uint16_t charge ) ;
2011-09-15 11:47:11 +02:00
struct smb2cli_req_expected_response {
NTSTATUS status ;
uint16_t body_size ;
} ;
struct tevent_req * smb2cli_req_send ( TALLOC_CTX * mem_ctx ,
struct tevent_context * ev ,
2011-09-15 12:23:05 +02:00
struct smbXcli_conn * conn ,
2011-09-15 11:47:11 +02:00
uint16_t cmd ,
uint32_t additional_flags ,
uint32_t clear_flags ,
2011-09-15 12:23:05 +02:00
uint32_t timeout_msec ,
2012-07-25 10:36:27 +02:00
struct smbXcli_tcon * tcon ,
2011-09-03 10:18:17 +02:00
struct smbXcli_session * session ,
2011-09-15 11:47:11 +02:00
const uint8_t * fixed ,
uint16_t fixed_len ,
const uint8_t * dyn ,
2013-08-13 10:25:52 +02:00
uint32_t dyn_len ,
uint32_t max_dyn_len ) ;
2011-09-15 11:47:11 +02:00
NTSTATUS smb2cli_req_recv ( struct tevent_req * req , TALLOC_CTX * mem_ctx ,
struct iovec * * piov ,
const struct smb2cli_req_expected_response * expected ,
size_t num_expected ) ;
2014-09-24 08:59:58 +02:00
/*
* This expects an iov [ 3 ] array , that is filled with references to
* the buffers used for the sending the requests into the socket .
*
* This can only be called after smb2cli_req_recv ( subreq ) before
* the TALLOC_FREE ( subreq ) .
*/
NTSTATUS smb2cli_req_get_sent_iov ( struct tevent_req * req ,
struct iovec * sent_iov ) ;
2011-09-15 13:12:43 +02:00
struct tevent_req * smbXcli_negprot_send ( TALLOC_CTX * mem_ctx ,
struct tevent_context * ev ,
struct smbXcli_conn * conn ,
uint32_t timeout_msec ,
enum protocol_types min_protocol ,
2017-02-27 16:14:39 +01:00
enum protocol_types max_protocol ,
uint16_t max_credits ) ;
2011-09-15 13:12:43 +02:00
NTSTATUS smbXcli_negprot_recv ( struct tevent_req * req ) ;
NTSTATUS smbXcli_negprot ( struct smbXcli_conn * conn ,
uint32_t timeout_msec ,
enum protocol_types min_protocol ,
enum protocol_types max_protocol ) ;
2014-09-26 21:15:00 +02:00
struct tevent_req * smb2cli_validate_negotiate_info_send ( TALLOC_CTX * mem_ctx ,
struct tevent_context * ev ,
struct smbXcli_conn * conn ,
uint32_t timeout_msec ,
struct smbXcli_session * session ,
struct smbXcli_tcon * tcon ) ;
NTSTATUS smb2cli_validate_negotiate_info_recv ( struct tevent_req * req ) ;
2011-09-15 13:12:43 +02:00
2011-09-03 10:18:17 +02:00
struct smbXcli_session * smbXcli_session_create ( TALLOC_CTX * mem_ctx ,
struct smbXcli_conn * conn ) ;
2019-06-11 17:42:38 +02:00
struct smbXcli_session * smbXcli_session_shallow_copy ( TALLOC_CTX * mem_ctx ,
2013-01-28 16:51:25 -08:00
struct smbXcli_session * src ) ;
2016-04-18 17:38:46 +02:00
bool smbXcli_session_is_guest ( struct smbXcli_session * session ) ;
2014-09-25 01:46:15 +02:00
bool smbXcli_session_is_authenticated ( struct smbXcli_session * session ) ;
2019-02-06 19:23:35 +01:00
NTSTATUS smb2cli_session_signing_key ( struct smbXcli_session * session ,
TALLOC_CTX * mem_ctx ,
DATA_BLOB * key ) ;
NTSTATUS smb2cli_session_encryption_key ( struct smbXcli_session * session ,
TALLOC_CTX * mem_ctx ,
DATA_BLOB * key ) ;
NTSTATUS smb2cli_session_decryption_key ( struct smbXcli_session * session ,
TALLOC_CTX * mem_ctx ,
DATA_BLOB * key ) ;
2012-08-01 08:59:01 +02:00
NTSTATUS smbXcli_session_application_key ( struct smbXcli_session * session ,
TALLOC_CTX * mem_ctx ,
DATA_BLOB * key ) ;
2012-10-22 14:18:20 +02:00
void smbXcli_session_set_disconnect_expired ( struct smbXcli_session * session ) ;
2012-06-02 12:49:22 +02:00
uint16_t smb1cli_session_current_id ( struct smbXcli_session * session ) ;
void smb1cli_session_set_id ( struct smbXcli_session * session ,
uint16_t session_id ) ;
2016-04-18 17:33:11 +02:00
void smb1cli_session_set_action ( struct smbXcli_session * session ,
uint16_t action ) ;
2012-08-01 08:53:30 +02:00
NTSTATUS smb1cli_session_set_session_key ( struct smbXcli_session * session ,
const DATA_BLOB _session_key ) ;
2012-08-01 09:01:25 +02:00
NTSTATUS smb1cli_session_protect_session_key ( struct smbXcli_session * session ) ;
2011-09-03 10:18:17 +02:00
uint8_t smb2cli_session_security_mode ( struct smbXcli_session * session ) ;
uint64_t smb2cli_session_current_id ( struct smbXcli_session * session ) ;
2012-04-16 12:45:02 +02:00
uint16_t smb2cli_session_get_flags ( struct smbXcli_session * session ) ;
2011-09-03 10:18:17 +02:00
void smb2cli_session_set_id_and_flags ( struct smbXcli_session * session ,
uint64_t session_id ,
uint16_t session_flags ) ;
2012-07-26 01:54:33 +02:00
void smb2cli_session_increment_channel_sequence ( struct smbXcli_session * session ) ;
2014-07-10 14:30:10 +05:30
uint16_t smb2cli_session_reset_channel_sequence ( struct smbXcli_session * session ,
uint16_t channel_sequence ) ;
2016-03-01 15:15:10 +01:00
uint16_t smb2cli_session_current_channel_sequence ( struct smbXcli_session * session ) ;
2014-07-10 16:46:04 +05:30
void smb2cli_session_start_replay ( struct smbXcli_session * session ) ;
void smb2cli_session_stop_replay ( struct smbXcli_session * session ) ;
2018-11-09 15:17:19 +01:00
void smb2cli_session_require_signed_response ( struct smbXcli_session * session ,
bool require_signed_response ) ;
2014-09-24 22:58:49 +02:00
NTSTATUS smb2cli_session_update_preauth ( struct smbXcli_session * session ,
const struct iovec * iov ) ;
2012-02-27 08:48:55 +01:00
NTSTATUS smb2cli_session_set_session_key ( struct smbXcli_session * session ,
const DATA_BLOB session_key ,
const struct iovec * recv_iov ) ;
2011-09-19 19:05:20 +02:00
NTSTATUS smb2cli_session_create_channel ( TALLOC_CTX * mem_ctx ,
struct smbXcli_session * session1 ,
struct smbXcli_conn * conn ,
struct smbXcli_session * * _session2 ) ;
2012-02-27 08:48:55 +01:00
NTSTATUS smb2cli_session_set_channel_key ( struct smbXcli_session * session ,
const DATA_BLOB channel_key ,
const struct iovec * recv_iov ) ;
2013-08-16 10:44:34 -07:00
NTSTATUS smb2cli_session_encryption_on ( struct smbXcli_session * session ) ;
2020-08-20 12:09:05 +02:00
uint16_t smb2cli_session_get_encryption_cipher ( struct smbXcli_session * session ) ;
2011-09-03 10:18:17 +02:00
2012-06-02 18:03:20 +02:00
struct smbXcli_tcon * smbXcli_tcon_create ( TALLOC_CTX * mem_ctx ) ;
2017-06-13 16:06:22 -07:00
struct smbXcli_tcon * smbXcli_tcon_copy ( TALLOC_CTX * mem_ctx ,
const struct smbXcli_tcon * tcon_in ) ;
2013-09-27 05:02:09 +02:00
void smbXcli_tcon_set_fs_attributes ( struct smbXcli_tcon * tcon ,
uint32_t fs_attributes ) ;
uint32_t smbXcli_tcon_get_fs_attributes ( struct smbXcli_tcon * tcon ) ;
2013-09-13 11:07:32 +02:00
bool smbXcli_tcon_is_dfs_share ( struct smbXcli_tcon * tcon ) ;
2012-06-02 18:03:20 +02:00
uint16_t smb1cli_tcon_current_id ( struct smbXcli_tcon * tcon ) ;
void smb1cli_tcon_set_id ( struct smbXcli_tcon * tcon , uint16_t tcon_id ) ;
bool smb1cli_tcon_set_values ( struct smbXcli_tcon * tcon ,
uint16_t tcon_id ,
uint16_t optional_support ,
uint32_t maximal_access ,
uint32_t guest_maximal_access ,
const char * service ,
const char * fs_type ) ;
uint32_t smb2cli_tcon_current_id ( struct smbXcli_tcon * tcon ) ;
2017-06-13 16:08:22 -07:00
void smb2cli_tcon_set_id ( struct smbXcli_tcon * tcon , uint32_t tcon_id ) ;
2012-07-25 09:27:00 +02:00
uint32_t smb2cli_tcon_capabilities ( struct smbXcli_tcon * tcon ) ;
2015-10-09 15:08:05 -07:00
uint32_t smb2cli_tcon_flags ( struct smbXcli_tcon * tcon ) ;
2012-06-02 18:03:20 +02:00
void smb2cli_tcon_set_values ( struct smbXcli_tcon * tcon ,
2012-07-25 12:33:39 +02:00
struct smbXcli_session * session ,
2012-06-02 18:03:20 +02:00
uint32_t tcon_id ,
uint8_t type ,
uint32_t flags ,
uint32_t capabilities ,
uint32_t maximal_access ) ;
2014-09-26 06:29:02 +02:00
void smb2cli_tcon_should_sign ( struct smbXcli_tcon * tcon ,
bool should_sign ) ;
bool smb2cli_tcon_is_signing_on ( struct smbXcli_tcon * tcon ) ;
2014-09-26 06:25:53 +02:00
void smb2cli_tcon_should_encrypt ( struct smbXcli_tcon * tcon ,
bool should_encrypt ) ;
2013-09-20 07:46:54 +02:00
bool smb2cli_tcon_is_encryption_on ( struct smbXcli_tcon * tcon ) ;
2012-06-02 18:03:20 +02:00
2012-04-16 12:49:58 +02:00
struct tevent_req * smb2cli_session_setup_send ( TALLOC_CTX * mem_ctx ,
struct tevent_context * ev ,
struct smbXcli_conn * conn ,
uint32_t timeout_msec ,
struct smbXcli_session * session ,
uint8_t in_flags ,
uint32_t in_capabilities ,
uint32_t in_channel ,
uint64_t in_previous_session_id ,
const DATA_BLOB * in_security_buffer ) ;
NTSTATUS smb2cli_session_setup_recv ( struct tevent_req * req ,
TALLOC_CTX * mem_ctx ,
struct iovec * * recv_iov ,
DATA_BLOB * out_security_buffer ) ;
2012-05-14 09:47:05 +02:00
struct tevent_req * smb2cli_logoff_send ( TALLOC_CTX * mem_ctx ,
struct tevent_context * ev ,
struct smbXcli_conn * conn ,
uint32_t timeout_msec ,
struct smbXcli_session * session ) ;
NTSTATUS smb2cli_logoff_recv ( struct tevent_req * req ) ;
NTSTATUS smb2cli_logoff ( struct smbXcli_conn * conn ,
uint32_t timeout_msec ,
struct smbXcli_session * session ) ;
2021-09-16 10:51:43 +02:00
/* smb2cli_raw_tcon* should only be used in tests! */
struct tevent_req * smb2cli_raw_tcon_send ( TALLOC_CTX * mem_ctx ,
struct tevent_context * ev ,
struct smbXcli_conn * conn ,
uint32_t additional_flags ,
uint32_t clear_flags ,
uint32_t timeout_msec ,
struct smbXcli_session * session ,
struct smbXcli_tcon * tcon ,
uint16_t tcon_flags ,
const char * unc ) ;
NTSTATUS smb2cli_raw_tcon_recv ( struct tevent_req * req ) ;
NTSTATUS smb2cli_raw_tcon ( struct smbXcli_conn * conn ,
uint32_t additional_flags ,
uint32_t clear_flags ,
uint32_t timeout_msec ,
struct smbXcli_session * session ,
struct smbXcli_tcon * tcon ,
uint16_t tcon_flags ,
const char * unc ) ;
2014-09-25 03:28:37 +02:00
struct tevent_req * smb2cli_tcon_send ( TALLOC_CTX * mem_ctx ,
struct tevent_context * ev ,
struct smbXcli_conn * conn ,
uint32_t timeout_msec ,
struct smbXcli_session * session ,
struct smbXcli_tcon * tcon ,
uint16_t flags ,
const char * unc ) ;
NTSTATUS smb2cli_tcon_recv ( struct tevent_req * req ) ;
NTSTATUS smb2cli_tcon ( struct smbXcli_conn * conn ,
uint32_t timeout_msec ,
struct smbXcli_session * session ,
struct smbXcli_tcon * tcon ,
uint16_t flags ,
const char * unc ) ;
struct tevent_req * smb2cli_tdis_send ( TALLOC_CTX * mem_ctx ,
struct tevent_context * ev ,
struct smbXcli_conn * conn ,
uint32_t timeout_msec ,
struct smbXcli_session * session ,
struct smbXcli_tcon * tcon ) ;
NTSTATUS smb2cli_tdis_recv ( struct tevent_req * req ) ;
NTSTATUS smb2cli_tdis ( struct smbXcli_conn * conn ,
uint32_t timeout_msec ,
struct smbXcli_session * session ,
struct smbXcli_tcon * tcon ) ;
2012-05-15 10:23:54 +02:00
struct tevent_req * smb2cli_create_send (
TALLOC_CTX * mem_ctx ,
struct tevent_context * ev ,
struct smbXcli_conn * conn ,
uint32_t timeout_msec ,
struct smbXcli_session * session ,
2012-07-23 22:32:49 +02:00
struct smbXcli_tcon * tcon ,
2012-05-15 10:23:54 +02:00
const char * filename ,
uint8_t oplock_level , /* SMB2_OPLOCK_LEVEL_* */
uint32_t impersonation_level , /* SMB2_IMPERSONATION_* */
uint32_t desired_access ,
uint32_t file_attributes ,
uint32_t share_access ,
uint32_t create_disposition ,
uint32_t create_options ,
struct smb2_create_blobs * blobs ) ;
NTSTATUS smb2cli_create_recv ( struct tevent_req * req ,
uint64_t * fid_persistent ,
2013-08-07 15:01:50 -07:00
uint64_t * fid_volatile ,
2014-06-27 09:32:34 +00:00
struct smb_create_returns * cr ,
TALLOC_CTX * mem_ctx ,
struct smb2_create_blobs * blobs ) ;
2012-05-15 10:23:54 +02:00
NTSTATUS smb2cli_create ( struct smbXcli_conn * conn ,
uint32_t timeout_msec ,
struct smbXcli_session * session ,
2012-07-23 22:32:49 +02:00
struct smbXcli_tcon * tcon ,
2012-05-15 10:23:54 +02:00
const char * filename ,
uint8_t oplock_level , /* SMB2_OPLOCK_LEVEL_* */
uint32_t impersonation_level , /* SMB2_IMPERSONATION_* */
uint32_t desired_access ,
uint32_t file_attributes ,
uint32_t share_access ,
uint32_t create_disposition ,
uint32_t create_options ,
struct smb2_create_blobs * blobs ,
uint64_t * fid_persistent ,
2013-08-07 15:01:50 -07:00
uint64_t * fid_volatile ,
2014-06-27 09:32:34 +00:00
struct smb_create_returns * cr ,
TALLOC_CTX * mem_ctx ,
struct smb2_create_blobs * ret_blobs ) ;
2012-05-15 10:23:54 +02:00
2012-05-15 10:26:25 +02:00
struct tevent_req * smb2cli_close_send ( TALLOC_CTX * mem_ctx ,
struct tevent_context * ev ,
struct smbXcli_conn * conn ,
uint32_t timeout_msec ,
struct smbXcli_session * session ,
2012-07-23 22:32:49 +02:00
struct smbXcli_tcon * tcon ,
2012-05-15 10:26:25 +02:00
uint16_t flags ,
uint64_t fid_persistent ,
uint64_t fid_volatile ) ;
NTSTATUS smb2cli_close_recv ( struct tevent_req * req ) ;
NTSTATUS smb2cli_close ( struct smbXcli_conn * conn ,
uint32_t timeout_msec ,
struct smbXcli_session * session ,
2012-07-23 22:32:49 +02:00
struct smbXcli_tcon * tcon ,
2012-05-15 10:26:25 +02:00
uint16_t flags ,
uint64_t fid_persistent ,
uint64_t fid_volatile ) ;
2012-05-15 10:50:49 +02:00
struct tevent_req * smb2cli_read_send ( TALLOC_CTX * mem_ctx ,
struct tevent_context * ev ,
struct smbXcli_conn * conn ,
uint32_t timeout_msec ,
struct smbXcli_session * session ,
2012-07-23 22:32:49 +02:00
struct smbXcli_tcon * tcon ,
2012-05-15 10:50:49 +02:00
uint32_t length ,
uint64_t offset ,
uint64_t fid_persistent ,
uint64_t fid_volatile ,
uint64_t minimum_count ,
uint64_t remaining_bytes ) ;
NTSTATUS smb2cli_read_recv ( struct tevent_req * req , TALLOC_CTX * mem_ctx ,
uint8_t * * data , uint32_t * data_length ) ;
NTSTATUS smb2cli_read ( struct smbXcli_conn * conn ,
uint32_t timeout_msec ,
struct smbXcli_session * session ,
2012-07-23 22:32:49 +02:00
struct smbXcli_tcon * tcon ,
2012-05-15 10:50:49 +02:00
uint32_t length ,
uint64_t offset ,
uint64_t fid_persistent ,
uint64_t fid_volatile ,
uint64_t minimum_count ,
uint64_t remaining_bytes ,
TALLOC_CTX * mem_ctx ,
uint8_t * * data ,
uint32_t * data_length ) ;
2012-05-15 11:11:24 +02:00
struct tevent_req * smb2cli_write_send ( TALLOC_CTX * mem_ctx ,
struct tevent_context * ev ,
struct smbXcli_conn * conn ,
uint32_t timeout_msec ,
struct smbXcli_session * session ,
2012-07-23 22:32:49 +02:00
struct smbXcli_tcon * tcon ,
2012-05-15 11:11:24 +02:00
uint32_t length ,
uint64_t offset ,
uint64_t fid_persistent ,
uint64_t fid_volatile ,
uint32_t remaining_bytes ,
uint32_t flags ,
const uint8_t * data ) ;
2013-08-07 14:41:24 -07:00
NTSTATUS smb2cli_write_recv ( struct tevent_req * req ,
uint32_t * written ) ;
2012-05-15 11:11:24 +02:00
NTSTATUS smb2cli_write ( struct smbXcli_conn * conn ,
uint32_t timeout_msec ,
struct smbXcli_session * session ,
2012-07-23 22:32:49 +02:00
struct smbXcli_tcon * tcon ,
2012-05-15 11:11:24 +02:00
uint32_t length ,
uint64_t offset ,
uint64_t fid_persistent ,
uint64_t fid_volatile ,
uint32_t remaining_bytes ,
uint32_t flags ,
2013-08-07 14:41:24 -07:00
const uint8_t * data ,
uint32_t * written ) ;
2012-05-15 11:11:24 +02:00
2012-05-15 12:00:19 +02:00
struct tevent_req * smb2cli_flush_send ( TALLOC_CTX * mem_ctx ,
struct tevent_context * ev ,
struct smbXcli_conn * conn ,
uint32_t timeout_msec ,
struct smbXcli_session * session ,
2012-07-23 22:32:49 +02:00
struct smbXcli_tcon * tcon ,
2012-05-15 12:00:19 +02:00
uint64_t fid_persistent ,
uint64_t fid_volatile ) ;
NTSTATUS smb2cli_flush_recv ( struct tevent_req * req ) ;
NTSTATUS smb2cli_flush ( struct smbXcli_conn * conn ,
uint32_t timeout_msec ,
struct smbXcli_session * session ,
2012-07-23 22:32:49 +02:00
struct smbXcli_tcon * tcon ,
2012-05-15 12:00:19 +02:00
uint64_t fid_persistent ,
uint64_t fid_volatile ) ;
2012-05-15 12:05:50 +02:00
struct tevent_req * smb2cli_set_info_send ( TALLOC_CTX * mem_ctx ,
struct tevent_context * ev ,
struct smbXcli_conn * conn ,
uint32_t timeout_msec ,
struct smbXcli_session * session ,
2012-07-23 22:32:49 +02:00
struct smbXcli_tcon * tcon ,
2012-05-15 12:05:50 +02:00
uint8_t in_info_type ,
uint8_t in_file_info_class ,
const DATA_BLOB * in_input_buffer ,
uint32_t in_additional_info ,
uint64_t in_fid_persistent ,
uint64_t in_fid_volatile ) ;
NTSTATUS smb2cli_set_info_recv ( struct tevent_req * req ) ;
NTSTATUS smb2cli_set_info ( struct smbXcli_conn * conn ,
2012-07-23 22:32:49 +02:00
uint32_t timeout_msec ,
struct smbXcli_session * session ,
struct smbXcli_tcon * tcon ,
uint8_t in_info_type ,
uint8_t in_file_info_class ,
const DATA_BLOB * in_input_buffer ,
uint32_t in_additional_info ,
uint64_t in_fid_persistent ,
uint64_t in_fid_volatile ) ;
2012-05-15 12:05:50 +02:00
2012-05-15 12:14:47 +02:00
struct tevent_req * smb2cli_query_info_send ( TALLOC_CTX * mem_ctx ,
struct tevent_context * ev ,
struct smbXcli_conn * conn ,
uint32_t timeout_msec ,
struct smbXcli_session * session ,
2012-07-23 22:32:49 +02:00
struct smbXcli_tcon * tcon ,
2012-05-15 12:14:47 +02:00
uint8_t in_info_type ,
uint8_t in_file_info_class ,
uint32_t in_max_output_length ,
const DATA_BLOB * in_input_buffer ,
uint32_t in_additional_info ,
uint32_t in_flags ,
uint64_t in_fid_persistent ,
uint64_t in_fid_volatile ) ;
NTSTATUS smb2cli_query_info_recv ( struct tevent_req * req ,
TALLOC_CTX * mem_ctx ,
DATA_BLOB * out_output_buffer ) ;
NTSTATUS smb2cli_query_info ( struct smbXcli_conn * conn ,
uint32_t timeout_msec ,
struct smbXcli_session * session ,
2012-07-23 22:32:49 +02:00
struct smbXcli_tcon * tcon ,
2012-05-15 12:14:47 +02:00
uint8_t in_info_type ,
uint8_t in_file_info_class ,
uint32_t in_max_output_length ,
const DATA_BLOB * in_input_buffer ,
uint32_t in_additional_info ,
uint32_t in_flags ,
uint64_t in_fid_persistent ,
uint64_t in_fid_volatile ,
TALLOC_CTX * mem_ctx ,
DATA_BLOB * out_output_buffer ) ;
2012-05-15 12:19:11 +02:00
struct tevent_req * smb2cli_query_directory_send ( TALLOC_CTX * mem_ctx ,
struct tevent_context * ev ,
struct smbXcli_conn * conn ,
uint32_t timeout_msec ,
struct smbXcli_session * session ,
2012-07-23 22:32:49 +02:00
struct smbXcli_tcon * tcon ,
2012-05-15 12:19:11 +02:00
uint8_t level ,
uint8_t flags ,
uint32_t file_index ,
uint64_t fid_persistent ,
uint64_t fid_volatile ,
const char * mask ,
uint32_t outbuf_len ) ;
NTSTATUS smb2cli_query_directory_recv ( struct tevent_req * req ,
TALLOC_CTX * mem_ctx ,
uint8_t * * data ,
uint32_t * data_length ) ;
NTSTATUS smb2cli_query_directory ( struct smbXcli_conn * conn ,
uint32_t timeout_msec ,
struct smbXcli_session * session ,
2012-07-23 22:32:49 +02:00
struct smbXcli_tcon * tcon ,
2012-05-15 12:19:11 +02:00
uint8_t level ,
uint8_t flags ,
uint32_t file_index ,
uint64_t fid_persistent ,
uint64_t fid_volatile ,
const char * mask ,
uint32_t outbuf_len ,
TALLOC_CTX * mem_ctx ,
uint8_t * * data ,
uint32_t * data_length ) ;
2017-07-25 12:11:37 +02:00
struct tevent_req * smb2cli_notify_send ( TALLOC_CTX * mem_ctx ,
struct tevent_context * ev ,
struct smbXcli_conn * conn ,
uint32_t timeout_msec ,
struct smbXcli_session * session ,
struct smbXcli_tcon * tcon ,
uint32_t output_buffer_length ,
uint64_t fid_persistent ,
uint64_t fid_volatile ,
uint32_t completion_filter ,
bool recursive ) ;
NTSTATUS smb2cli_notify_recv ( struct tevent_req * req , TALLOC_CTX * mem_ctx ,
uint8_t * * data , uint32_t * data_length ) ;
NTSTATUS smb2cli_notify ( struct smbXcli_conn * conn ,
uint32_t timeout_msec ,
struct smbXcli_session * session ,
struct smbXcli_tcon * tcon ,
uint32_t output_buffer_length ,
uint64_t fid_persistent ,
uint64_t fid_volatile ,
uint32_t completion_filter ,
bool recursive ,
TALLOC_CTX * mem_ctx ,
uint8_t * * data ,
uint32_t * data_length ) ;
2012-05-15 12:24:38 +02:00
struct tevent_req * smb2cli_ioctl_send ( TALLOC_CTX * mem_ctx ,
struct tevent_context * ev ,
struct smbXcli_conn * conn ,
uint32_t timeout_msec ,
struct smbXcli_session * session ,
2012-07-23 22:32:49 +02:00
struct smbXcli_tcon * tcon ,
2012-05-15 12:24:38 +02:00
uint64_t in_fid_persistent ,
uint64_t in_fid_volatile ,
uint32_t in_ctl_code ,
uint32_t in_max_input_length ,
const DATA_BLOB * in_input_buffer ,
uint32_t in_max_output_length ,
const DATA_BLOB * in_output_buffer ,
uint32_t in_flags ) ;
NTSTATUS smb2cli_ioctl_recv ( struct tevent_req * req ,
TALLOC_CTX * mem_ctx ,
DATA_BLOB * out_input_buffer ,
DATA_BLOB * out_output_buffer ) ;
NTSTATUS smb2cli_ioctl ( struct smbXcli_conn * conn ,
uint32_t timeout_msec ,
struct smbXcli_session * session ,
2012-07-23 22:32:49 +02:00
struct smbXcli_tcon * tcon ,
2012-05-15 12:24:38 +02:00
uint64_t in_fid_persistent ,
uint64_t in_fid_volatile ,
uint32_t in_ctl_code ,
uint32_t in_max_input_length ,
const DATA_BLOB * in_input_buffer ,
uint32_t in_max_output_length ,
const DATA_BLOB * in_output_buffer ,
uint32_t in_flags ,
TALLOC_CTX * mem_ctx ,
DATA_BLOB * out_input_buffer ,
DATA_BLOB * out_output_buffer ) ;
2012-09-28 19:18:37 +02:00
struct tevent_req * smb2cli_echo_send ( TALLOC_CTX * mem_ctx ,
struct tevent_context * ev ,
struct smbXcli_conn * conn ,
uint32_t timeout_msec ) ;
NTSTATUS smb2cli_echo_recv ( struct tevent_req * req ) ;
NTSTATUS smb2cli_echo ( struct smbXcli_conn * conn ,
uint32_t timeout_msec ) ;
2011-08-11 13:29:59 +02:00
# endif /* _SMBXCLI_BASE_H_ */