関数 | |
static TALLOC_CTX * | get_current_rpc_talloc (void) |
void | set_current_rpc_talloc (TALLOC_CTX *ctx) |
void | main_loop_TALLOC_FREE (void) |
TALLOC_CTX * | main_loop_talloc_get (void) |
TALLOC_CTX * | get_talloc_ctx (void) |
static BOOL | smb_io_utime (const char *desc, UTIME *t, prs_struct *ps, int depth) |
BOOL | smb_io_time (const char *desc, NTTIME *nttime, prs_struct *ps, int depth) |
BOOL | smb_io_nttime (const char *desc, prs_struct *ps, int depth, NTTIME *nttime) |
uint32 | get_enum_hnd (ENUM_HND *enh) |
void | init_enum_hnd (ENUM_HND *enh, uint32 hnd) |
BOOL | smb_io_enum_hnd (const char *desc, ENUM_HND *hnd, prs_struct *ps, int depth) |
BOOL | smb_io_dom_sid (const char *desc, DOM_SID *sid, prs_struct *ps, int depth) |
void | init_dom_sid2 (DOM_SID2 *sid2, const DOM_SID *sid) |
BOOL | smb_io_dom_sid2_p (const char *desc, prs_struct *ps, int depth, DOM_SID2 **sid2) |
BOOL | smb_io_dom_sid2 (const char *desc, DOM_SID2 *sid, prs_struct *ps, int depth) |
BOOL | smb_io_uuid (const char *desc, struct GUID *uuid, prs_struct *ps, int depth) |
void | init_str_hdr (STRHDR *hdr, int max_len, int len, uint32 buffer) |
BOOL | smb_io_strhdr (const char *desc, STRHDR *hdr, prs_struct *ps, int depth) |
void | init_uni_hdr (UNIHDR *hdr, UNISTR2 *str2) |
BOOL | smb_io_unihdr (const char *desc, UNIHDR *hdr, prs_struct *ps, int depth) |
void | init_buf_hdr (BUFHDR *hdr, int max_len, int len) |
BOOL | smb_io_hdrbuf_pre (const char *desc, BUFHDR *hdr, prs_struct *ps, int depth, uint32 *offset) |
BOOL | smb_io_hdrbuf_post (const char *desc, BUFHDR *hdr, prs_struct *ps, int depth, uint32 ptr_hdrbuf, uint32 max_len, uint32 len) |
BOOL | smb_io_hdrbuf (const char *desc, BUFHDR *hdr, prs_struct *ps, int depth) |
void | init_unistr (UNISTR *str, const char *buf) |
BOOL | smb_io_unistr (const char *desc, UNISTR *uni, prs_struct *ps, int depth) |
static void | create_rpc_blob (RPC_DATA_BLOB *str, size_t len) |
void | init_rpc_blob_uint32 (RPC_DATA_BLOB *str, uint32 val) |
void | init_rpc_blob_str (RPC_DATA_BLOB *str, const char *buf, int len) |
void | init_rpc_blob_hex (RPC_DATA_BLOB *str, const char *buf) |
void | init_rpc_blob_bytes (RPC_DATA_BLOB *str, uint8 *buf, size_t len) |
BOOL | smb_io_buffer5 (const char *desc, BUFFER5 *buf5, prs_struct *ps, int depth) |
void | init_regval_buffer (REGVAL_BUFFER *str, const uint8 *buf, size_t len) |
BOOL | smb_io_regval_buffer (const char *desc, prs_struct *ps, int depth, REGVAL_BUFFER *buf2) |
void | init_buf_unistr2 (UNISTR2 *str, uint32 *ptr, const char *buf) |
void | copy_unistr2 (UNISTR2 *str, const UNISTR2 *from) |
void | init_string2 (STRING2 *str, const char *buf, size_t max_len, size_t str_len) |
BOOL | smb_io_string2 (const char *desc, STRING2 *str2, uint32 buffer, prs_struct *ps, int depth) |
void | init_unistr2 (UNISTR2 *str, const char *buf, enum unistr2_term_codes flags) |
void | init_unistr4 (UNISTR4 *uni4, const char *buf, enum unistr2_term_codes flags) |
void | init_unistr4_w (TALLOC_CTX *ctx, UNISTR4 *uni4, const smb_ucs2_t *buf) |
void | init_unistr2_w (TALLOC_CTX *ctx, UNISTR2 *str, const smb_ucs2_t *buf) |
Inits a UNISTR2 structure. | |
void | init_unistr2_from_unistr (UNISTR2 *to, const UNISTR *from) |
void | init_unistr2_from_datablob (UNISTR2 *str, DATA_BLOB *blob) |
BOOL | prs_io_unistr2_p (const char *desc, prs_struct *ps, int depth, UNISTR2 **uni2) |
BOOL | prs_io_unistr2 (const char *desc, prs_struct *ps, int depth, UNISTR2 *uni2) |
BOOL | smb_io_unistr2 (const char *desc, UNISTR2 *uni2, uint32 buffer, prs_struct *ps, int depth) |
BOOL | prs_unistr4 (const char *desc, prs_struct *ps, int depth, UNISTR4 *uni4) |
BOOL | prs_unistr4_hdr (const char *desc, prs_struct *ps, int depth, UNISTR4 *uni4) |
BOOL | prs_unistr4_str (const char *desc, prs_struct *ps, int depth, UNISTR4 *uni4) |
BOOL | prs_unistr4_array (const char *desc, prs_struct *ps, int depth, UNISTR4_ARRAY *array) |
BOOL | init_unistr4_array (UNISTR4_ARRAY *array, uint32 count, const char **strings) |
BOOL | smb_io_lockout_string_hdr (const char *desc, HDR_LOCKOUT_STRING *hdr_account_lockout, prs_struct *ps, int depth) |
BOOL | smb_io_account_lockout_str (const char *desc, LOCKOUT_STRING *account_lockout, uint32 buffer, prs_struct *ps, int depth) |
void | init_dom_rid (DOM_RID *prid, uint32 rid, uint16 type, uint32 idx) |
BOOL | smb_io_dom_rid (const char *desc, DOM_RID *rid, prs_struct *ps, int depth) |
BOOL | smb_io_dom_rid2 (const char *desc, DOM_RID2 *rid, prs_struct *ps, int depth) |
void | init_dom_rid3 (DOM_RID3 *rid3, uint32 rid, uint8 type) |
BOOL | smb_io_dom_rid3 (const char *desc, DOM_RID3 *rid3, prs_struct *ps, int depth) |
void | init_dom_rid4 (DOM_RID4 *rid4, uint16 unknown, uint16 attr, uint32 rid) |
static void | init_clnt_srv (DOM_CLNT_SRV *logcln, const char *logon_srv, const char *comp_name) |
BOOL | smb_io_clnt_srv (const char *desc, DOM_CLNT_SRV *logcln, prs_struct *ps, int depth) |
void | init_log_info (DOM_LOG_INFO *loginfo, const char *logon_srv, const char *acct_name, uint16 sec_chan, const char *comp_name) |
BOOL | smb_io_log_info (const char *desc, DOM_LOG_INFO *loginfo, prs_struct *ps, int depth) |
BOOL | smb_io_chal (const char *desc, DOM_CHAL *chal, prs_struct *ps, int depth) |
BOOL | smb_io_cred (const char *desc, DOM_CRED *cred, prs_struct *ps, int depth) |
void | init_clnt_info2 (DOM_CLNT_INFO2 *clnt, const char *logon_srv, const char *comp_name, const DOM_CRED *clnt_cred) |
BOOL | smb_io_clnt_info2 (const char *desc, DOM_CLNT_INFO2 *clnt, prs_struct *ps, int depth) |
void | init_clnt_info (DOM_CLNT_INFO *clnt, const char *logon_srv, const char *acct_name, uint16 sec_chan, const char *comp_name, const DOM_CRED *cred) |
BOOL | smb_io_clnt_info (const char *desc, DOM_CLNT_INFO *clnt, prs_struct *ps, int depth) |
void | init_logon_id (DOM_LOGON_ID *logonid, uint32 log_id_low, uint32 log_id_high) |
BOOL | smb_io_logon_id (const char *desc, DOM_LOGON_ID *logonid, prs_struct *ps, int depth) |
void | init_owf_info (OWF_INFO *hash, const uint8 data[16]) |
BOOL | smb_io_owf_info (const char *desc, OWF_INFO *hash, prs_struct *ps, int depth) |
BOOL | smb_io_gid (const char *desc, DOM_GID *gid, prs_struct *ps, int depth) |
BOOL | smb_io_pol_hnd (const char *desc, POLICY_HND *pol, prs_struct *ps, int depth) |
void | init_unistr3 (UNISTR3 *str, const char *buf) |
BOOL | smb_io_unistr3 (const char *desc, UNISTR3 *name, prs_struct *ps, int depth) |
BOOL | prs_uint64 (const char *name, prs_struct *ps, int depth, uint64 *data64) |
BOOL | smb_io_bufhdr2 (const char *desc, BUFHDR2 *hdr, prs_struct *ps, int depth) |
BOOL | smb_io_bufhdr4 (const char *desc, BUFHDR4 *hdr, prs_struct *ps, int depth) |
BOOL | smb_io_rpc_blob (const char *desc, RPC_DATA_BLOB *blob, prs_struct *ps, int depth) |
BOOL | make_uni_hdr (UNIHDR *hdr, int len) |
BOOL | make_bufhdr2 (BUFHDR2 *hdr, uint32 info_level, uint32 length, uint32 buffer) |
uint32 | str_len_uni (UNISTR *source) |
変数 | |
static TALLOC_CTX * | current_rpc_talloc = NULL |
static TALLOC_CTX * | main_loop_talloc = NULL |
static TALLOC_CTX* get_current_rpc_talloc | ( | void | ) | [static] |
parse_misc.c の 36 行で定義されています。
参照先 current_rpc_talloc.
参照元 get_talloc_ctx().
00037 { 00038 return current_rpc_talloc; 00039 }
void set_current_rpc_talloc | ( | TALLOC_CTX * | ctx | ) |
parse_misc.c の 41 行で定義されています。
参照先 current_rpc_talloc.
参照元 api_pipe_request().
00042 { 00043 current_rpc_talloc = ctx; 00044 }
void main_loop_TALLOC_FREE | ( | void | ) |
parse_misc.c の 52 行で定義されています。
参照先 main_loop_talloc.
参照元 process_loop()・smbd_process().
00053 { 00054 if (!main_loop_talloc) 00055 return; 00056 talloc_destroy(main_loop_talloc); 00057 main_loop_talloc = NULL; 00058 }
TALLOC_CTX* main_loop_talloc_get | ( | void | ) |
parse_misc.c の 64 行で定義されています。
参照先 main_loop_talloc・smb_panic()・talloc_init().
参照元 afs_to_nt_acl()・aixjfs2_getacl_alloc()・aixjfs2_process_smbacl()・get_nt_acl()・get_talloc_ctx()・gpfs_get_nfs4_acl()・gpfs_getacl_alloc()・gpfsacl_process_smbacl()・smb_add_ace4()・smb_create_smb4acl()・smb_get_nt_acl_nfs4()・smbacl4_nfs42win()・smbacl4_win2nfs4().
00065 { 00066 if (!main_loop_talloc) { 00067 main_loop_talloc = talloc_init("main loop talloc (mainly parse_misc)"); 00068 if (!main_loop_talloc) 00069 smb_panic("main_loop_talloc: malloc fail\n"); 00070 } 00071 00072 return main_loop_talloc; 00073 }
TALLOC_CTX* get_talloc_ctx | ( | void | ) |
parse_misc.c の 82 行で定義されています。
参照先 get_current_rpc_talloc()・main_loop_talloc_get().
参照元 construct_printer_info_2()・construct_printer_info_3()・copy_unistr2()・create_rpc_blob()・init_q_add_acct_rights()・init_q_remove_acct_rights()・init_r_enum_acct_rights()・init_reg_q_abort_shutdown()・init_reg_q_create_key_ex()・init_reg_q_enum_val()・init_reg_q_open_hive()・init_reg_q_shutdown()・init_reg_r_enum_key()・init_reg_r_enum_val()・init_reg_r_query_value()・init_regval_buffer()・init_shutdown_q_abort()・init_shutdown_q_init()・init_srv_file_info3()・init_srv_q_net_file_close()・init_srv_q_net_file_enum()・init_srv_sess_info0()・init_srv_sess_info1()・init_string2()・init_unistr()・init_unistr2()・init_unistr2_from_unistr()・init_unistr3()・init_unistr4()・init_unistr4_array()・make_spoolss_q_addprinterex()・make_spoolss_q_open_printer_ex()・net_file_enum_3()・ntsvcs_io_q_get_hw_profile_info()・ntsvcs_io_r_get_hw_profile_info()・prs_unistr4_array()・regkey_access_check()・svcctl_io_service_fa().
00083 { 00084 TALLOC_CTX *tc = get_current_rpc_talloc(); 00085 00086 if (tc) 00087 return tc; 00088 return main_loop_talloc_get(); 00089 }
static BOOL smb_io_utime | ( | const char * | desc, | |
UTIME * | t, | |||
prs_struct * | ps, | |||
int | depth | |||
) | [static] |
parse_misc.c の 95 行で定義されています。
参照先 prs_debug()・t.
参照元 smb_io_cred().
00096 { 00097 if (t == NULL) 00098 return False; 00099 00100 prs_debug(ps, depth, desc, "smb_io_utime"); 00101 depth++; 00102 00103 if(!prs_align(ps)) 00104 return False; 00105 00106 if(!prs_uint32 ("time", ps, depth, &t->time)) 00107 return False; 00108 00109 return True; 00110 }
BOOL smb_io_time | ( | const char * | desc, | |
NTTIME * | nttime, | |||
prs_struct * | ps, | |||
int | depth | |||
) |
parse_misc.c の 116 行で定義されています。
参照先 prs_debug().
参照元 net_io_sam_account_info()・net_io_sam_domain_info()・net_io_sam_policy_info()・net_io_sam_secret_info()・net_io_user_info3()・pac_io_logon_name()・pac_io_pac_logon_info()・prs_nk_rec()・prs_regf_block()・reg_io_q_enum_key()・reg_io_r_query_key()・sam_io_unk_info1()・sam_io_unk_info12()・sam_io_unk_info13()・sam_io_unk_info2()・sam_io_unk_info3()・sam_io_unk_info8()・sam_io_user_info17()・sam_io_user_info21()・sam_io_user_info23()・sam_io_user_info25()・smb_io_nttime()・spool_io_printer_driver_info_level_6().
00117 { 00118 uint32 low, high; 00119 if (nttime == NULL) 00120 return False; 00121 00122 prs_debug(ps, depth, desc, "smb_io_time"); 00123 depth++; 00124 00125 if(!prs_align(ps)) 00126 return False; 00127 00128 if (MARSHALLING(ps)) { 00129 low = *nttime & 0xFFFFFFFF; 00130 high = *nttime >> 32; 00131 } 00132 00133 if(!prs_uint32("low ", ps, depth, &low)) /* low part */ 00134 return False; 00135 if(!prs_uint32("high", ps, depth, &high)) /* high part */ 00136 return False; 00137 00138 if (UNMARSHALLING(ps)) { 00139 *nttime = (((uint64_t)high << 32) + low); 00140 } 00141 00142 return True; 00143 }
BOOL smb_io_nttime | ( | const char * | desc, | |
prs_struct * | ps, | |||
int | depth, | |||
NTTIME * | nttime | |||
) |
parse_misc.c の 149 行で定義されています。
参照先 smb_io_time().
参照元 lsa_io_dom_query_1()・lsa_io_dominfo_query_3()・reg_io_r_enum_key().
00150 { 00151 return smb_io_time( desc, nttime, ps, depth ); 00152 }
uint32 get_enum_hnd | ( | ENUM_HND * | enh | ) |
void init_enum_hnd | ( | ENUM_HND * | enh, | |
uint32 | hnd | |||
) |
parse_misc.c の 167 行で定義されています。
参照先 ENUM_HND::handle・ENUM_HND::ptr_hnd.
参照元 _srv_net_disk_enum()・browse_host_rpc()・cmd_srvsvc_net_file_enum()・cmd_srvsvc_net_share_enum()・get_rpc_shares()・get_share_info()・init_srv_r_net_conn_enum()・init_srv_r_net_sess_enum()・init_srv_r_net_share_enum()・net_file_enum_3()・net_share_enum_rpc()・rpc_file_list_internals()・rpc_share_allowedusers_internals().
00168 { 00169 DEBUG(5,("smb_io_enum_hnd\n")); 00170 00171 enh->ptr_hnd = (hnd != 0) ? 1 : 0; 00172 enh->handle = hnd; 00173 }
BOOL smb_io_enum_hnd | ( | const char * | desc, | |
ENUM_HND * | hnd, | |||
prs_struct * | ps, | |||
int | depth | |||
) |
parse_misc.c の 179 行で定義されています。
参照先 ENUM_HND::handle・prs_debug()・ENUM_HND::ptr_hnd.
参照元 srv_io_q_net_conn_enum()・srv_io_q_net_disk_enum()・srv_io_q_net_file_enum()・srv_io_q_net_sess_enum()・srv_io_q_net_share_enum()・srv_io_r_net_conn_enum()・srv_io_r_net_disk_enum()・srv_io_r_net_file_enum()・srv_io_r_net_sess_enum()・srv_io_r_net_share_enum().
00180 { 00181 if (hnd == NULL) 00182 return False; 00183 00184 prs_debug(ps, depth, desc, "smb_io_enum_hnd"); 00185 depth++; 00186 00187 if(!prs_align(ps)) 00188 return False; 00189 00190 if(!prs_uint32("ptr_hnd", ps, depth, &hnd->ptr_hnd)) /* pointer */ 00191 return False; 00192 00193 if (hnd->ptr_hnd != 0) { 00194 if(!prs_uint32("handle ", ps, depth, &hnd->handle )) /* enum handle */ 00195 return False; 00196 } 00197 00198 return True; 00199 }
BOOL smb_io_dom_sid | ( | const char * | desc, | |
DOM_SID * | sid, | |||
prs_struct * | ps, | |||
int | depth | |||
) |
parse_misc.c の 205 行で定義されています。
参照先 dom_sid::id_auth・dom_sid::num_auths・prs_debug()・dom_sid::sid_rev_num・dom_sid::sub_auths.
参照元 lsa_io_q_open_trusted_domain()・sec_io_ace()・sec_io_desc()・smb_io_dom_sid2().
00206 { 00207 int i; 00208 00209 if (sid == NULL) 00210 return False; 00211 00212 prs_debug(ps, depth, desc, "smb_io_dom_sid"); 00213 depth++; 00214 00215 if(!prs_uint8 ("sid_rev_num", ps, depth, &sid->sid_rev_num)) 00216 return False; 00217 00218 if(!prs_uint8 ("num_auths ", ps, depth, &sid->num_auths)) 00219 return False; 00220 00221 for (i = 0; i < 6; i++) 00222 { 00223 fstring tmp; 00224 slprintf(tmp, sizeof(tmp) - 1, "id_auth[%d] ", i); 00225 if(!prs_uint8 (tmp, ps, depth, &sid->id_auth[i])) 00226 return False; 00227 } 00228 00229 /* oops! XXXX should really issue a warning here... */ 00230 if (sid->num_auths > MAXSUBAUTHS) 00231 sid->num_auths = MAXSUBAUTHS; 00232 00233 if(!prs_uint32s(False, "sub_auths ", ps, depth, sid->sub_auths, sid->num_auths)) 00234 return False; 00235 00236 return True; 00237 }
parse_misc.c の 243 行で定義されています。
参照先 dom_sid::num_auths・DOM_SID2::num_auths・DOM_SID2::sid.
参照元 _lsa_enum_accounts()・_samr_query_aliasmem()・init_dns_dom_info()・init_dom_query_3()・init_dom_ref()・init_dom_sid2s()・init_lsa_q_create_account()・init_lsa_q_open_account()・init_lsa_q_open_trusted_domain()・init_lsa_sid_enum()・init_net_user_info3()・init_q_add_acct_rights()・init_q_enum_acct_rights()・init_q_query_trusted_domain_info_by_sid()・init_q_remove_acct_rights()・init_r_enum_trust_dom()・init_samr_q_add_aliasmem()・init_samr_q_del_aliasmem()・init_samr_q_open_domain()・init_samr_q_remove_sid_foreign_domain()・init_samr_r_lookup_domain()・lookup_lsa_sids().
BOOL smb_io_dom_sid2_p | ( | const char * | desc, | |
prs_struct * | ps, | |||
int | depth, | |||
DOM_SID2 ** | sid2 | |||
) |
parse_misc.c の 253 行で定義されています。
参照元 lsa_io_domain_list()・smb_io_lsa_translated_sids3().
00254 { 00255 uint32 data_p; 00256 00257 /* caputure the pointer value to stream */ 00258 00259 data_p = *sid2 ? 0xf000baaa : 0; 00260 00261 if ( !prs_uint32("dom_sid2_p", ps, depth, &data_p )) 00262 return False; 00263 00264 /* we're done if there is no data */ 00265 00266 if ( !data_p ) 00267 return True; 00268 00269 if (UNMARSHALLING(ps)) { 00270 if ( !(*sid2 = PRS_ALLOC_MEM(ps, DOM_SID2, 1)) ) 00271 return False; 00272 } 00273 00274 return True; 00275 }
BOOL smb_io_dom_sid2 | ( | const char * | desc, | |
DOM_SID2 * | sid, | |||
prs_struct * | ps, | |||
int | depth | |||
) |
parse_misc.c の 280 行で定義されています。
参照先 DOM_SID2::num_auths・prs_debug()・DOM_SID2::sid・smb_io_dom_sid().
参照元 ds_io_dom_trusts_ctr()・lsa_io_dom_query_12()・lsa_io_dom_query_3()・lsa_io_dom_r_ref()・lsa_io_domain_list()・lsa_io_q_add_acct_rights()・lsa_io_q_create_account()・lsa_io_q_enum_acct_rights()・lsa_io_q_open_account()・lsa_io_q_query_trusted_domain_info_by_sid()・lsa_io_q_remove_acct_rights()・lsa_io_r_lookup_names3()・lsa_io_r_lookup_names4()・lsa_io_sid_enum()・lsa_io_trustdom_query_6()・net_io_sam_policy_info()・net_io_sam_privs_info()・net_io_sam_trustdoms_info()・pac_io_krb_sids()・samr_io_q_add_aliasmem()・samr_io_q_del_aliasmem()・samr_io_q_open_domain()・samr_io_q_query_useraliases()・samr_io_q_remove_sid_foreign_domain()・samr_io_r_lookup_domain().
00281 { 00282 if (sid == NULL) 00283 return False; 00284 00285 prs_debug(ps, depth, desc, "smb_io_dom_sid2"); 00286 depth++; 00287 00288 if(!prs_align(ps)) 00289 return False; 00290 00291 if(!prs_uint32("num_auths", ps, depth, &sid->num_auths)) 00292 return False; 00293 00294 if(!smb_io_dom_sid("sid", &sid->sid, ps, depth)) 00295 return False; 00296 00297 return True; 00298 }
BOOL smb_io_uuid | ( | const char * | desc, | |
struct GUID * | uuid, | |||
prs_struct * | ps, | |||
int | depth | |||
) |
parse_misc.c の 304 行で定義されています。
参照先 GUID::clock_seq・GUID::node・prs_debug()・GUID::time_hi_and_version・GUID::time_low・GUID::time_mid.
参照元 ds_io_domain_trusts()・ds_io_dominfobasic()・lsa_io_dom_query_12()・net_io_q_dsr_getdcname()・net_io_q_dsr_getdcnameex()・net_io_q_dsr_getdcnameex2()・net_io_r_dsr_getdcname()・netdfs_io_dfs_Info4_p()・sec_io_ace()・smb_io_pol_hnd()・smb_io_rpc_iface().
00306 { 00307 if (uuid == NULL) 00308 return False; 00309 00310 prs_debug(ps, depth, desc, "smb_io_uuid"); 00311 depth++; 00312 00313 if(!prs_uint32 ("data ", ps, depth, &uuid->time_low)) 00314 return False; 00315 if(!prs_uint16 ("data ", ps, depth, &uuid->time_mid)) 00316 return False; 00317 if(!prs_uint16 ("data ", ps, depth, &uuid->time_hi_and_version)) 00318 return False; 00319 00320 if(!prs_uint8s (False, "data ", ps, depth, uuid->clock_seq, sizeof(uuid->clock_seq))) 00321 return False; 00322 if(!prs_uint8s (False, "data ", ps, depth, uuid->node, sizeof(uuid->node))) 00323 return False; 00324 00325 return True; 00326 }
void init_str_hdr | ( | STRHDR * | hdr, | |
int | max_len, | |||
int | len, | |||
uint32 | buffer | |||
) |
parse_misc.c の 332 行で定義されています。
参照先 STRHDR::buffer・STRHDR::str_max_len・STRHDR::str_str_len.
参照元 init_id_info2()・init_sam_entry4()・init_sam_entry5().
00333 { 00334 hdr->str_max_len = max_len; 00335 hdr->str_str_len = len; 00336 hdr->buffer = buffer; 00337 }
BOOL smb_io_strhdr | ( | const char * | desc, | |
STRHDR * | hdr, | |||
prs_struct * | ps, | |||
int | depth | |||
) |
parse_misc.c の 343 行で定義されています。
参照先 STRHDR::buffer・prs_debug()・STRHDR::str_max_len・STRHDR::str_str_len.
参照元 net_io_id_info2()・sam_io_sam_entry4()・sam_io_sam_entry5().
00344 { 00345 if (hdr == NULL) 00346 return False; 00347 00348 prs_debug(ps, depth, desc, "smb_io_strhdr"); 00349 depth++; 00350 00351 prs_align(ps); 00352 00353 if(!prs_uint16("str_str_len", ps, depth, &hdr->str_str_len)) 00354 return False; 00355 if(!prs_uint16("str_max_len", ps, depth, &hdr->str_max_len)) 00356 return False; 00357 if(!prs_uint32("buffer ", ps, depth, &hdr->buffer)) 00358 return False; 00359 00360 return True; 00361 }
parse_misc.c の 367 行で定義されています。
参照先 UNIHDR::buffer・UNISTR2::uni_max_len・UNIHDR::uni_max_len・UNISTR2::uni_str_len・UNIHDR::uni_str_len.
参照元 _lsa_enum_privs()・_lsa_priv_get_dispname()・_lsa_unk_get_connuser()・init_dns_dom_info()・init_dom_ref()・init_id_info1()・init_id_info2()・init_lsa_priv_get_dispname()・init_lsa_string()・init_lsa_trans_name()・init_lsa_trans_name2()・init_net_user_info3()・init_q_lookup_names()・init_sam_entry()・init_sam_entry1()・init_sam_entry2()・init_sam_entry3()・init_sam_user_info17()・init_sam_user_info20A()・init_sam_user_info21A()・init_sam_user_info21W()・init_sam_user_info23A()・init_sam_user_info23W()・init_sam_user_info7()・init_samr_group_info1()・init_samr_group_info2()・init_samr_group_info4()・init_samr_group_info5()・init_samr_q_chgpasswd_user()・init_samr_q_chgpasswd_user3()・init_samr_q_create_dom_alias()・init_samr_q_create_dom_group()・init_samr_q_create_user()・init_samr_q_get_dom_pwinfo()・init_samr_q_lookup_domain()・init_samr_q_lookup_names()・init_unk_info2()・init_unk_info4()・init_unk_info5()・init_unk_info6()・make_samr_lookup_rids()・netsamlogon_cache_store().
00368 { 00369 hdr->uni_str_len = 2 * (str2->uni_str_len); 00370 hdr->uni_max_len = 2 * (str2->uni_max_len); 00371 hdr->buffer = (str2->uni_str_len != 0) ? 1 : 0; 00372 }
BOOL smb_io_unihdr | ( | const char * | desc, | |
UNIHDR * | hdr, | |||
prs_struct * | ps, | |||
int | depth | |||
) |
parse_misc.c の 378 行で定義されています。
参照先 UNIHDR::buffer・prs_debug()・UNIHDR::uni_max_len・UNIHDR::uni_str_len.
参照元 lsa_io_dom_query_12()・lsa_io_dom_r_ref()・lsa_io_priv_entries()・lsa_io_q_lookup_names()・lsa_io_q_lookup_names2()・lsa_io_q_lookup_names3()・lsa_io_q_lookup_names4()・lsa_io_q_priv_get_dispname()・lsa_io_r_priv_get_dispname()・lsa_io_r_unk_get_connuser()・lsa_io_trans_name()・lsa_io_trans_name2()・lsa_io_trustdom_query_6()・net_io_id_info1()・net_io_id_info2()・net_io_sam_account_info()・net_io_sam_alias_info()・net_io_sam_domain_info()・net_io_sam_group_info()・net_io_sam_passwd_info()・net_io_sam_policy_info()・net_io_sam_privs_info()・net_io_sam_trustdoms_info()・net_io_user_info3()・pac_io_pac_logon_info()・sam_io_sam_entry()・sam_io_sam_entry1()・sam_io_sam_entry2()・sam_io_sam_entry3()・sam_io_unk_info2()・sam_io_unk_info4()・sam_io_unk_info5()・sam_io_unk_info6()・sam_io_user_info17()・sam_io_user_info20()・sam_io_user_info21()・sam_io_user_info23()・sam_io_user_info25()・sam_io_user_info7()・samr_io_group_info1()・samr_io_group_info2()・samr_io_group_info4()・samr_io_group_info5()・samr_io_q_chgpasswd_user()・samr_io_q_chgpasswd_user3()・samr_io_q_create_dom_alias()・samr_io_q_create_dom_group()・samr_io_q_create_user()・samr_io_q_get_dom_pwinfo()・samr_io_q_lookup_domain()・samr_io_q_lookup_names()・samr_io_r_lookup_rids()・smb_io_lsa_string().
00379 { 00380 if (hdr == NULL) 00381 return False; 00382 00383 prs_debug(ps, depth, desc, "smb_io_unihdr"); 00384 depth++; 00385 00386 if(!prs_align(ps)) 00387 return False; 00388 00389 if(!prs_uint16("uni_str_len", ps, depth, &hdr->uni_str_len)) 00390 return False; 00391 if(!prs_uint16("uni_max_len", ps, depth, &hdr->uni_max_len)) 00392 return False; 00393 if(!prs_uint32("buffer ", ps, depth, &hdr->buffer)) 00394 return False; 00395 00396 return True; 00397 }
void init_buf_hdr | ( | BUFHDR * | hdr, | |
int | max_len, | |||
int | len | |||
) |
parse_misc.c の 403 行で定義されています。
参照先 BUFHDR::buf_len・BUFHDR::buf_max_len.
参照元 init_reg_q_create_key_ex()・init_reg_q_get_key_sec()・init_reg_q_set_key_sec()・init_reg_r_get_key_sec()・smb_io_hdrbuf_post().
00404 { 00405 hdr->buf_max_len = max_len; 00406 hdr->buf_len = len; 00407 }
BOOL smb_io_hdrbuf_pre | ( | const char * | desc, | |
BUFHDR * | hdr, | |||
prs_struct * | ps, | |||
int | depth, | |||
uint32 * | offset | |||
) |
parse_misc.c の 414 行で定義されています。
参照先 _prs_struct::io・smb_io_hdrbuf().
参照元 reg_io_hdrbuf_sec().
00415 { 00416 (*offset) = prs_offset(ps); 00417 if (ps->io) { 00418 00419 /* reading. */ 00420 00421 if(!smb_io_hdrbuf(desc, hdr, ps, depth)) 00422 return False; 00423 00424 } else { 00425 00426 /* writing. */ 00427 00428 if(!prs_set_offset(ps, prs_offset(ps) + (sizeof(uint32) * 2))) 00429 return False; 00430 } 00431 00432 return True; 00433 }
BOOL smb_io_hdrbuf_post | ( | const char * | desc, | |
BUFHDR * | hdr, | |||
prs_struct * | ps, | |||
int | depth, | |||
uint32 | ptr_hdrbuf, | |||
uint32 | max_len, | |||
uint32 | len | |||
) |
parse_misc.c の 440 行で定義されています。
参照先 init_buf_hdr()・_prs_struct::io・smb_io_hdrbuf().
参照元 reg_io_hdrbuf_sec().
00442 { 00443 if (!ps->io) { 00444 /* writing: go back and do a retrospective job. i hate this */ 00445 00446 uint32 old_offset = prs_offset(ps); 00447 00448 init_buf_hdr(hdr, max_len, len); 00449 if(!prs_set_offset(ps, ptr_hdrbuf)) 00450 return False; 00451 if(!smb_io_hdrbuf(desc, hdr, ps, depth)) 00452 return False; 00453 00454 if(!prs_set_offset(ps, old_offset)) 00455 return False; 00456 } 00457 00458 return True; 00459 }
BOOL smb_io_hdrbuf | ( | const char * | desc, | |
BUFHDR * | hdr, | |||
prs_struct * | ps, | |||
int | depth | |||
) |
parse_misc.c の 465 行で定義されています。
参照先 BUFHDR::buf_len・BUFHDR::buf_max_len・prs_debug().
参照元 reg_io_r_get_key_sec()・smb_io_hdrbuf_post()・smb_io_hdrbuf_pre().
00466 { 00467 if (hdr == NULL) 00468 return False; 00469 00470 prs_debug(ps, depth, desc, "smb_io_hdrbuf"); 00471 depth++; 00472 00473 if(!prs_align(ps)) 00474 return False; 00475 00476 if(!prs_uint32("buf_max_len", ps, depth, &hdr->buf_max_len)) 00477 return False; 00478 if(!prs_uint32("buf_len ", ps, depth, &hdr->buf_len)) 00479 return False; 00480 00481 return True; 00482 }
void init_unistr | ( | UNISTR * | str, | |
const char * | buf | |||
) |
parse_misc.c の 488 行で定義されています。
参照先 UNISTR::buffer・get_talloc_ctx()・len・rpcstr_push()・smb_panic().
参照元 _spoolss_enumprinterdataex()・cmd_spoolss_addprinterex()・cmd_spoolss_setdriver()・cmd_spoolss_setprinter()・cmd_spoolss_setprintername()・construct_printer_info_0()・construct_printer_info_1()・construct_printer_info_2()・construct_printer_info_4()・construct_printer_info_5()・construct_printer_info_7()・convert_nt_devicemode()・enum_all_printers_info_1_remote()・enumerate_status()・enumprintmonitors_level_1()・enumprintmonitors_level_2()・enumprintprocdatatypes_level_1()・enumprintprocessors_level_1()・fill_driverdir_1()・fill_form_1()・fill_job_info_1()・fill_job_info_2()・fill_port_1()・fill_port_2()・fill_printer_driver_info_1()・fill_printer_driver_info_2()・fill_printer_driver_info_3()・fill_printer_driver_info_6()・fill_printprocessordirectory_1()・get_driver_3_param()・init_service_description_buffer()・make_monitorui_buf()・rpc_printer_migrate_drivers_internals()・rpc_printer_migrate_settings_internals()・set_drv_info_3_env()・to_struct().
00489 { 00490 size_t len; 00491 00492 if (buf == NULL) { 00493 str->buffer = NULL; 00494 return; 00495 } 00496 00497 len = strlen(buf) + 1; 00498 00499 if (len) { 00500 str->buffer = TALLOC_ZERO_ARRAY(get_talloc_ctx(), uint16, len); 00501 if (str->buffer == NULL) 00502 smb_panic("init_unistr: malloc fail\n"); 00503 00504 rpcstr_push(str->buffer, buf, len*sizeof(uint16), STR_TERMINATE); 00505 } else { 00506 str->buffer = NULL; 00507 } 00508 }
BOOL smb_io_unistr | ( | const char * | desc, | |
UNISTR * | uni, | |||
prs_struct * | ps, | |||
int | depth | |||
) |
parse_misc.c の 515 行で定義されています。
参照先 prs_debug().
参照元 smb_io_driverdir_1()・smb_io_printprocessordirectory_1()・smb_io_relarraystr()・smb_io_relstr().
00516 { 00517 if (uni == NULL) 00518 return False; 00519 00520 prs_debug(ps, depth, desc, "smb_io_unistr"); 00521 depth++; 00522 00523 if(!prs_unistr("unistr", ps, depth, uni)) 00524 return False; 00525 00526 return True; 00527 }
static void create_rpc_blob | ( | RPC_DATA_BLOB * | str, | |
size_t | len | |||
) | [static] |
parse_misc.c の 533 行で定義されています。
参照先 RPC_DATA_BLOB::buf_len・RPC_DATA_BLOB::buffer・get_talloc_ctx()・smb_panic().
参照元 init_rpc_blob_bytes()・init_rpc_blob_hex()・init_rpc_blob_str()・init_rpc_blob_uint32().
00534 { 00535 if (len) { 00536 str->buffer = (uint8 *)TALLOC_ZERO(get_talloc_ctx(), len); 00537 if (str->buffer == NULL) 00538 smb_panic("create_rpc_blob: talloc fail\n"); 00539 str->buf_len = len; 00540 } else { 00541 str->buffer = NULL; 00542 str->buf_len = 0; 00543 } 00544 }
void init_rpc_blob_uint32 | ( | RPC_DATA_BLOB * | str, | |
uint32 | val | |||
) |
parse_misc.c の 550 行で定義されています。
参照先 RPC_DATA_BLOB::buffer・create_rpc_blob().
00551 { 00552 ZERO_STRUCTP(str); 00553 00554 /* set up string lengths. */ 00555 create_rpc_blob(str, sizeof(uint32)); 00556 SIVAL(str->buffer, 0, val); 00557 }
void init_rpc_blob_str | ( | RPC_DATA_BLOB * | str, | |
const char * | buf, | |||
int | len | |||
) |
parse_misc.c の 563 行で定義されています。
参照先 create_rpc_blob()・rpcstr_push().
00564 { 00565 ZERO_STRUCTP(str); 00566 00567 /* set up string lengths. */ 00568 if (len) { 00569 create_rpc_blob(str, len*2); 00570 rpcstr_push(str->buffer, buf, (size_t)str->buf_len, STR_TERMINATE); 00571 } 00572 }
void init_rpc_blob_hex | ( | RPC_DATA_BLOB * | str, | |
const char * | buf | |||
) |
parse_misc.c の 578 行で定義されています。
参照先 create_rpc_blob()・strhex_to_str().
00579 { 00580 ZERO_STRUCTP(str); 00581 if (buf && *buf) { 00582 create_rpc_blob(str, strlen(buf)); 00583 str->buf_len = strhex_to_str((char *)str->buffer, str->buf_len, buf); 00584 } 00585 }
void init_rpc_blob_bytes | ( | RPC_DATA_BLOB * | str, | |
uint8 * | buf, | |||
size_t | len | |||
) |
parse_misc.c の 591 行で定義されています。
参照先 RPC_DATA_BLOB::buf_len・create_rpc_blob().
00592 { 00593 ZERO_STRUCTP(str); 00594 00595 /* max buffer size (allocated size) */ 00596 if (buf != NULL && len) { 00597 create_rpc_blob(str, len); 00598 memcpy(str->buffer, buf, len); 00599 } 00600 str->buf_len = len; 00601 }
BOOL smb_io_buffer5 | ( | const char * | desc, | |
BUFFER5 * | buf5, | |||
prs_struct * | ps, | |||
int | depth | |||
) |
parse_misc.c の 607 行で定義されています。
参照先 BUFFER5::buf_len・prs_debug().
参照元 spool_io_printer_driver_info_level_3()・spool_io_printer_driver_info_level_6()・spoolss_io_r_enumprinterkey().
00608 { 00609 prs_debug(ps, depth, desc, "smb_io_buffer5"); 00610 depth++; 00611 00612 if (buf5 == NULL) return False; 00613 00614 if(!prs_align(ps)) 00615 return False; 00616 if(!prs_uint32("buf_len", ps, depth, &buf5->buf_len)) 00617 return False; 00618 00619 if(buf5->buf_len) { 00620 if(!prs_buffer5(True, "buffer" , ps, depth, buf5)) 00621 return False; 00622 } 00623 00624 return True; 00625 }
void init_regval_buffer | ( | REGVAL_BUFFER * | str, | |
const uint8 * | buf, | |||
size_t | len | |||
) |
parse_misc.c の 631 行で定義されています。
参照先 REGVAL_BUFFER::buf_len・REGVAL_BUFFER::buf_max_len・REGVAL_BUFFER::buffer・get_talloc_ctx()・REGVAL_BUFFER::offset・smb_panic().
00632 { 00633 ZERO_STRUCTP(str); 00634 00635 /* max buffer size (allocated size) */ 00636 str->buf_max_len = len; 00637 str->offset = 0; 00638 str->buf_len = buf != NULL ? len : 0; 00639 00640 if (buf != NULL) { 00641 SMB_ASSERT(str->buf_max_len >= str->buf_len); 00642 str->buffer = (uint16 *)TALLOC_ZERO(get_talloc_ctx(), 00643 str->buf_max_len); 00644 if (str->buffer == NULL) 00645 smb_panic("init_regval_buffer: talloc fail\n"); 00646 memcpy(str->buffer, buf, str->buf_len); 00647 } 00648 }
BOOL smb_io_regval_buffer | ( | const char * | desc, | |
prs_struct * | ps, | |||
int | depth, | |||
REGVAL_BUFFER * | buf2 | |||
) |
parse_misc.c の 656 行で定義されています。
参照先 REGVAL_BUFFER::buf_len・REGVAL_BUFFER::buf_max_len・REGVAL_BUFFER::offset・prs_debug().
参照元 ntsvcs_io_r_get_device_reg_property()・reg_io_q_enum_val()・reg_io_r_enum_val()・reg_io_r_query_value().
00657 { 00658 00659 prs_debug(ps, depth, desc, "smb_io_regval_buffer"); 00660 depth++; 00661 00662 if(!prs_align(ps)) 00663 return False; 00664 00665 if(!prs_uint32("buf_max_len", ps, depth, &buf2->buf_max_len)) 00666 return False; 00667 if(!prs_uint32("offset ", ps, depth, &buf2->offset)) 00668 return False; 00669 if(!prs_uint32("buf_len ", ps, depth, &buf2->buf_len)) 00670 return False; 00671 00672 /* buffer advanced by indicated length of string 00673 NOT by searching for null-termination */ 00674 00675 if(!prs_regval_buffer(True, "buffer ", ps, depth, buf2)) 00676 return False; 00677 00678 return True; 00679 }
void init_buf_unistr2 | ( | UNISTR2 * | str, | |
uint32 * | ptr, | |||
const char * | buf | |||
) |
parse_misc.c の 685 行で定義されています。
参照先 init_unistr2()・UNI_FLAGS_NONE・UNI_STR_TERMINATE.
参照元 init_srv_info_100()・init_srv_info_101()・init_srv_info_102()・init_srv_q_net_conn_enum()・init_srv_q_net_disk_enum()・init_srv_q_net_file_enum()・init_srv_q_net_sess_del()・init_srv_q_net_share_enum()・init_srv_q_net_share_get_info()・init_srv_q_net_share_set_info()・init_srv_q_net_srv_get_info()・make_spoolss_q_enumports()・make_spoolss_q_enumprinterdrivers()・make_spoolss_q_enumprinters()・make_spoolss_q_getprinterdriver2()・make_spoolss_q_getprinterdriverdir().
00686 { 00687 if (buf != NULL) { 00688 *ptr = 1; 00689 init_unistr2(str, buf, UNI_STR_TERMINATE); 00690 } else { 00691 *ptr = 0; 00692 init_unistr2(str, NULL, UNI_FLAGS_NONE); 00693 00694 } 00695 }
parse_misc.c の 701 行で定義されています。
参照先 UNISTR2::buffer・from・get_talloc_ctx()・UNISTR2::offset・smb_panic()・UNISTR2::uni_max_len・UNISTR2::uni_str_len.
参照元 _spoolss_addprinterdriverex()・convert_to_openprinterex()・copy_printer_default()・init_sam_user_info21W()・init_sam_user_info23W()・make_user_sam_entry_list()・rpccli_svcctl_query_config().
00702 { 00703 if (from->buffer == NULL) { 00704 ZERO_STRUCTP(str); 00705 return; 00706 } 00707 00708 SMB_ASSERT(from->uni_max_len >= from->uni_str_len); 00709 00710 str->uni_max_len = from->uni_max_len; 00711 str->offset = from->offset; 00712 str->uni_str_len = from->uni_str_len; 00713 00714 /* the string buffer is allocated to the maximum size 00715 (the the length of the source string) to prevent 00716 reallocation of memory. */ 00717 if (str->buffer == NULL) { 00718 if (str->uni_max_len) { 00719 str->buffer = (uint16 *)TALLOC_ZERO_ARRAY(get_talloc_ctx(), uint16, str->uni_max_len); 00720 if ((str->buffer == NULL)) { 00721 smb_panic("copy_unistr2: talloc fail\n"); 00722 return; 00723 } 00724 /* copy the string */ 00725 memcpy(str->buffer, from->buffer, str->uni_max_len*sizeof(uint16)); 00726 } else { 00727 str->buffer = NULL; 00728 } 00729 } 00730 }
void init_string2 | ( | STRING2 * | str, | |
const char * | buf, | |||
size_t | max_len, | |||
size_t | str_len | |||
) |
parse_misc.c の 736 行で定義されています。
参照先 STRING2::buffer・get_talloc_ctx()・STRING2::offset・smb_panic()・STRING2::str_max_len・STRING2::str_str_len.
参照元 init_id_info2()・init_sam_dispinfo_4()・init_sam_dispinfo_5().
00737 { 00738 /* set up string lengths. */ 00739 SMB_ASSERT(max_len >= str_len); 00740 00741 /* Ensure buf is valid if str_len was set. Coverity check. */ 00742 if (str_len && !buf) { 00743 return; 00744 } 00745 00746 str->str_max_len = max_len; 00747 str->offset = 0; 00748 str->str_str_len = str_len; 00749 00750 /* store the string */ 00751 if(str_len != 0) { 00752 str->buffer = (uint8 *)TALLOC_ZERO(get_talloc_ctx(), 00753 str->str_max_len); 00754 if (str->buffer == NULL) 00755 smb_panic("init_string2: malloc fail\n"); 00756 memcpy(str->buffer, buf, str_len); 00757 } 00758 }
BOOL smb_io_string2 | ( | const char * | desc, | |
STRING2 * | str2, | |||
uint32 | buffer, | |||
prs_struct * | ps, | |||
int | depth | |||
) |
parse_misc.c の 767 行で定義されています。
参照先 STRING2::offset・prs_debug()・STRING2::str_max_len・STRING2::str_str_len.
参照元 net_io_id_info2()・sam_io_sam_dispinfo_4()・sam_io_sam_dispinfo_5().
00768 { 00769 if (str2 == NULL) 00770 return False; 00771 00772 if (buffer) { 00773 00774 prs_debug(ps, depth, desc, "smb_io_string2"); 00775 depth++; 00776 00777 if(!prs_align(ps)) 00778 return False; 00779 00780 if(!prs_uint32("str_max_len", ps, depth, &str2->str_max_len)) 00781 return False; 00782 if(!prs_uint32("offset ", ps, depth, &str2->offset)) 00783 return False; 00784 if(!prs_uint32("str_str_len", ps, depth, &str2->str_str_len)) 00785 return False; 00786 00787 /* buffer advanced by indicated length of string 00788 NOT by searching for null-termination */ 00789 if(!prs_string2(True, "buffer ", ps, depth, str2)) 00790 return False; 00791 00792 } else { 00793 00794 prs_debug(ps, depth, desc, "smb_io_string2 - NULL"); 00795 depth++; 00796 memset((char *)str2, '\0', sizeof(*str2)); 00797 00798 } 00799 00800 return True; 00801 }
void init_unistr2 | ( | UNISTR2 * | str, | |
const char * | buf, | |||
enum unistr2_term_codes | flags | |||
) |
parse_misc.c の 807 行で定義されています。
参照先 UNISTR2::buffer・get_talloc_ctx()・len・UNISTR2::offset・rpcstr_push()・smb_panic()・strlen_w()・UNI_BROKEN_NON_NULL・UNISTR2::uni_max_len・UNI_MAXLEN_TERMINATE・UNI_STR_DBLTERMINATE・UNISTR2::uni_str_len・UNI_STR_TERMINATE.
参照元 _lsa_enum_privs()・_lsa_priv_get_dispname()・_lsa_unk_get_connuser()・_ntsvcs_get_device_list()・_reg_perfcount_multi_sz_from_tdb()・cac_MakeUserInfoCtr()・cmd_spoolss_addform()・cmd_spoolss_setform()・cmd_spoolss_setprinterdata()・cmd_srvsvc_net_share_set_info()・eventlog_add_source()・eventlog_init_keys()・fill_dsrole_dominfo_basic()・fill_in_driver_values()・fill_in_printer_values()・fill_service_values()・fill_svc_config()・get_share_info()・init_buf_unistr2()・init_clnt_srv()・init_dns_dom_info()・init_dom_query_3()・init_dom_ref()・init_id_info1()・init_id_info2()・init_log_info()・init_lsa_priv_get_dispname()・init_lsa_string()・init_lsa_trans_name()・init_lsa_trans_name2()・init_net_q_dsr_getdcname()・init_net_q_dsr_getdcnameex()・init_net_q_dsr_getdcnameex2()・init_net_q_dsr_getsitename()・init_net_q_getanydcname()・init_net_q_logon_ctrl()・init_net_q_logon_ctrl2()・init_net_q_sam_deltas()・init_net_q_sam_sync()・init_net_r_dsr_getdcname()・init_net_r_getanydcname()・init_net_user_info3()・init_netdfs_dfs_Info1()・init_netdfs_dfs_Info100()・init_netdfs_dfs_Info2()・init_netdfs_dfs_Info200()・init_netdfs_dfs_Info3()・init_netdfs_dfs_Info300()・init_netdfs_dfs_Info4()・init_netdfs_dfs_StorageInfo()・init_netdfs_q_dfs_Add()・init_netdfs_q_dfs_GetInfo()・init_netdfs_q_dfs_Remove()・init_netinfo_2()・init_q_ds_enum_domain_trusts()・init_q_lookup_names()・init_q_open_pol2()・init_q_req_chal()・init_r_trust_dom()・init_registry_data()・init_reply_dfs_info_1()・init_reply_dfs_info_100()・init_reply_dfs_info_2()・init_reply_dfs_info_3()・init_sam_dispinfo_1()・init_sam_dispinfo_2()・init_sam_dispinfo_3()・init_sam_user_info17()・init_sam_user_info21A()・init_sam_user_info23A()・init_sam_user_info7()・init_samr_group_info1()・init_samr_group_info2()・init_samr_group_info4()・init_samr_group_info5()・init_samr_q_chgpasswd_user()・init_samr_q_chgpasswd_user3()・init_samr_q_connect()・init_samr_q_connect4()・init_samr_q_connect5()・init_samr_q_create_dom_alias()・init_samr_q_create_dom_group()・init_samr_q_create_user()・init_samr_q_get_dom_pwinfo()・init_samr_q_lookup_domain()・init_samr_q_lookup_names()・init_srv_conn_info1_str()・init_srv_file_info3()・init_srv_q_net_file_close()・init_srv_q_net_remote_tod()・init_srv_q_net_share_add()・init_srv_q_net_share_del()・init_srv_sess_info0()・init_srv_sess_info1()・init_srv_share_info0_str()・init_srv_share_info1004_str()・init_srv_share_info1007_str()・init_srv_share_info1_str()・init_srv_share_info2_str()・init_srv_share_info501_str()・init_srv_share_info502_str()・init_svcctl_r_get_display_name()・init_unistr2_from_datablob()・init_unistr4()・init_unk_info2()・init_unk_info4()・init_unk_info5()・init_unk_info6()・make_enum_domains()・make_group_sam_entry_list()・make_samr_lookup_rids()・make_spoolss_q_addprinterdriver()・make_spoolss_q_addprinterex()・make_spoolss_q_deleteform()・make_spoolss_q_deleteprinterdata()・make_spoolss_q_deleteprinterdataex()・make_spoolss_q_deleteprinterdriver()・make_spoolss_q_deleteprinterdriverex()・make_spoolss_q_deleteprinterkey()・make_spoolss_q_enumprinterdataex()・make_spoolss_q_enumprinterkey()・make_spoolss_q_getform()・make_spoolss_q_getprinterdata()・make_spoolss_q_getprinterdataex()・make_spoolss_q_getprintprocessordirectory()・make_spoolss_q_open_printer_ex()・make_spoolss_q_replyopenprinter()・make_spoolss_q_rffpcnex()・make_spoolss_q_setform()・make_spoolss_q_setprinterdata()・make_spoolss_q_setprinterdataex()・make_spoolss_q_startdocprinter()・make_user_sam_entry_list()・netsamlogon_cache_store()・notify_string()・py_to_FORM()・regval_build_multi_sz()・rpc_printer_migrate_forms_internals()・rpc_printer_migrate_settings_internals()・rpccli_srvsvc_net_file_enum()・rpccli_srvsvc_net_share_enum()・rpccli_srvsvc_net_share_get_info()・rpccli_svcctl_open_scm()・rpccli_svcctl_open_service()・spoolss_hnd_addform()・store_printer_guid()・unpack_values()・update_printer().
00808 { 00809 size_t len = 0; 00810 uint32 num_chars = 0; 00811 00812 if (buf) { 00813 /* We always null terminate the copy. */ 00814 len = strlen(buf) + 1; 00815 if ( flags == UNI_STR_DBLTERMINATE ) 00816 len++; 00817 } 00818 00819 if (buf == NULL || len == 0) { 00820 /* no buffer -- nothing to do */ 00821 str->uni_max_len = 0; 00822 str->offset = 0; 00823 str->uni_str_len = 0; 00824 00825 return; 00826 } 00827 00828 00829 str->buffer = TALLOC_ZERO_ARRAY(get_talloc_ctx(), uint16, len); 00830 if (str->buffer == NULL) { 00831 smb_panic("init_unistr2: malloc fail\n"); 00832 return; 00833 } 00834 00835 /* Ensure len is the length in *bytes* */ 00836 len *= sizeof(uint16); 00837 00838 /* 00839 * The UNISTR2 must be initialized !!! 00840 * jfm, 7/7/2001. 00841 */ 00842 if (buf) { 00843 rpcstr_push((char *)str->buffer, buf, len, STR_TERMINATE); 00844 num_chars = strlen_w(str->buffer); 00845 if (flags == UNI_STR_TERMINATE || flags == UNI_MAXLEN_TERMINATE) { 00846 num_chars++; 00847 } 00848 if ( flags == UNI_STR_DBLTERMINATE ) 00849 num_chars += 2; 00850 } 00851 00852 str->uni_max_len = num_chars; 00853 str->offset = 0; 00854 str->uni_str_len = num_chars; 00855 if ( num_chars && ((flags == UNI_MAXLEN_TERMINATE) || (flags == UNI_BROKEN_NON_NULL)) ) 00856 str->uni_max_len++; 00857 }
void init_unistr4 | ( | UNISTR4 * | uni4, | |
const char * | buf, | |||
enum unistr2_term_codes | flags | |||
) |
parse_misc.c の 863 行で定義されています。
参照先 get_talloc_ctx()・init_unistr2()・UNISTR4::length・UNISTR4::size・smb_panic()・UNISTR4::string・UNISTR2::uni_max_len・UNISTR2::uni_str_len.
参照元 init_q_reg_save_key()・init_reg_q_create_key_ex()・init_reg_q_delete_key()・init_reg_q_delete_val()・init_reg_q_open_entry()・init_reg_q_query_key()・init_reg_q_query_value()・init_reg_q_set_val()・init_reg_q_shutdown()・init_reg_r_enum_key()・init_reg_r_enum_val()・init_samr_alias_info1()・init_samr_alias_info3()・init_shutdown_q_init()・init_unistr4_array().
00864 { 00865 uni4->string = TALLOC_P( get_talloc_ctx(), UNISTR2 ); 00866 if (!uni4->string) { 00867 smb_panic("init_unistr4: talloc fail\n"); 00868 return; 00869 } 00870 init_unistr2( uni4->string, buf, flags ); 00871 00872 uni4->length = 2 * (uni4->string->uni_str_len); 00873 uni4->size = 2 * (uni4->string->uni_max_len); 00874 }
void init_unistr4_w | ( | TALLOC_CTX * | ctx, | |
UNISTR4 * | uni4, | |||
const smb_ucs2_t * | buf | |||
) |
parse_misc.c の 876 行で定義されています。
参照先 init_unistr2_w()・UNISTR4::length・UNISTR4::size・smb_panic()・UNISTR4::string・UNISTR2::uni_max_len・UNISTR2::uni_str_len.
00877 { 00878 uni4->string = TALLOC_P( ctx, UNISTR2 ); 00879 if (!uni4->string) { 00880 smb_panic("init_unistr4_w: talloc fail\n"); 00881 return; 00882 } 00883 init_unistr2_w( ctx, uni4->string, buf ); 00884 00885 uni4->length = 2 * (uni4->string->uni_str_len); 00886 uni4->size = 2 * (uni4->string->uni_max_len); 00887 }
void init_unistr2_w | ( | TALLOC_CTX * | ctx, | |
UNISTR2 * | str, | |||
const smb_ucs2_t * | buf | |||
) |
Inits a UNISTR2 structure.
ctx | talloc context to allocate string on | |
str | pointer to string to create | |
buf | UCS2 null-terminated buffer to init from |
parse_misc.c の 896 行で定義されています。
参照先 UNISTR2::buffer・len・UNISTR2::offset・smb_panic()・strlen_w()・strncpy_w()・UNISTR2::uni_max_len・UNISTR2::uni_str_len.
参照元 init_unistr4_w().
00897 { 00898 uint32 len = buf ? strlen_w(buf) : 0; 00899 00900 ZERO_STRUCTP(str); 00901 00902 /* set up string lengths. */ 00903 str->uni_max_len = len; 00904 str->offset = 0; 00905 str->uni_str_len = len; 00906 00907 if (len + 1) { 00908 str->buffer = TALLOC_ZERO_ARRAY(ctx, uint16, len + 1); 00909 if (str->buffer == NULL) { 00910 smb_panic("init_unistr2_w: talloc fail\n"); 00911 return; 00912 } 00913 } else { 00914 str->buffer = NULL; 00915 } 00916 00917 /* 00918 * don't move this test above ! The UNISTR2 must be initialized !!! 00919 * jfm, 7/7/2001. 00920 */ 00921 if (buf==NULL) 00922 return; 00923 00924 /* Yes, this is a strncpy( foo, bar, strlen(bar)) - but as 00925 long as the buffer above is talloc()ed correctly then this 00926 is the correct thing to do */ 00927 if (len+1) { 00928 strncpy_w(str->buffer, buf, len + 1); 00929 } 00930 }
parse_misc.c の 936 行で定義されています。
参照先 from・get_talloc_ctx()・smb_panic()・to.
参照元 make_spoolss_driver_info_3()・make_spoolss_printer_info_2()・make_spoolss_printer_info_7().
00937 { 00938 uint32 i; 00939 00940 /* the destination UNISTR2 should never be NULL. 00941 if it is it is a programming error */ 00942 00943 /* if the source UNISTR is NULL, then zero out 00944 the destination string and return */ 00945 ZERO_STRUCTP (to); 00946 if ((from == NULL) || (from->buffer == NULL)) 00947 return; 00948 00949 /* get the length; UNISTR must be NULL terminated */ 00950 i = 0; 00951 while ((from->buffer)[i]!='\0') 00952 i++; 00953 i++; /* one more to catch the terminating NULL */ 00954 /* is this necessary -- jerry? I need to think */ 00955 00956 /* set up string lengths; uni_max_len is set to i+1 00957 because we need to account for the final NULL termination */ 00958 to->uni_max_len = i; 00959 to->offset = 0; 00960 to->uni_str_len = i; 00961 00962 /* allocate the space and copy the string buffer */ 00963 if (i) { 00964 to->buffer = TALLOC_ZERO_ARRAY(get_talloc_ctx(), uint16, i); 00965 if (to->buffer == NULL) 00966 smb_panic("init_unistr2_from_unistr: malloc fail\n"); 00967 memcpy(to->buffer, from->buffer, i*sizeof(uint16)); 00968 } else { 00969 to->buffer = NULL; 00970 } 00971 return; 00972 }
parse_misc.c の 980 行で定義されています。
参照先 UNISTR2::buffer・data_blob_::data・init_unistr2()・data_blob_::length・memdup()・UNISTR2::offset・smb_panic()・UNI_FLAGS_NONE・UNISTR2::uni_max_len・UNISTR2::uni_str_len.
参照元 init_sam_user_info20A()・init_sam_user_info21A()・init_sam_user_info23A().
00981 { 00982 /* Allocs the unistring */ 00983 init_unistr2(str, NULL, UNI_FLAGS_NONE); 00984 00985 /* Sets the values */ 00986 str->uni_str_len = blob->length / sizeof(uint16); 00987 str->uni_max_len = str->uni_str_len; 00988 str->offset = 0; 00989 if (blob->length) { 00990 str->buffer = (uint16 *) memdup(blob->data, blob->length); 00991 } else { 00992 str->buffer = NULL; 00993 } 00994 if ((str->buffer == NULL) && (blob->length > 0)) { 00995 smb_panic("init_unistr2_from_datablob: malloc fail\n"); 00996 } 00997 }
BOOL prs_io_unistr2_p | ( | const char * | desc, | |
prs_struct * | ps, | |||
int | depth, | |||
UNISTR2 ** | uni2 | |||
) |
parse_misc.c の 1006 行で定義されています。
参照元 lsa_io_data_blob()・prs_unistr4_hdr()・spool_io_user_level_1()・spoolss_io_q_addprinterex()・spoolss_io_q_open_printer()・spoolss_io_q_open_printer_ex()・srv_io_srv_sess_info_0()・srv_io_srv_sess_info_1()・svcctl_io_service_config().
01007 { 01008 uint32 data_p; 01009 01010 /* caputure the pointer value to stream */ 01011 01012 data_p = *uni2 ? 0xf000baaa : 0; 01013 01014 if ( !prs_uint32("ptr", ps, depth, &data_p )) 01015 return False; 01016 01017 /* we're done if there is no data */ 01018 01019 if ( !data_p ) 01020 return True; 01021 01022 if (UNMARSHALLING(ps)) { 01023 if ( !(*uni2 = PRS_ALLOC_MEM(ps, UNISTR2, 1)) ) 01024 return False; 01025 } 01026 01027 return True; 01028 }
BOOL prs_io_unistr2 | ( | const char * | desc, | |
prs_struct * | ps, | |||
int | depth, | |||
UNISTR2 * | uni2 | |||
) |
parse_misc.c の 1035 行で定義されています。
参照先 smb_io_unistr2().
参照元 ntsvcs_io_q_get_device_list()・ntsvcs_io_q_get_device_list_size()・ntsvcs_io_q_get_device_reg_property()・ntsvcs_io_q_hw_profile_flags()・ntsvcs_io_q_validate_device_instance()・ntsvcs_io_r_get_device_list()・prs_unistr4()・prs_unistr4_str()・spool_io_user_level_1()・spoolss_io_q_addprinterex()・spoolss_io_q_open_printer()・spoolss_io_q_open_printer_ex()・srv_io_q_net_file_close()・srv_io_q_net_file_enum()・srv_io_q_net_name_validate()・srv_io_q_net_sess_enum()・srv_io_srv_sess_info_0()・srv_io_srv_sess_info_1()・svcctl_io_q_open_scmanager()・svcctl_io_service_config()・svcctl_io_service_fa().
01036 { 01037 /* just return true if there is no pointer to deal with. 01038 the memory must have been previously allocated on unmarshalling 01039 by prs_unistr2_p() */ 01040 01041 if ( !uni2 ) 01042 return True; 01043 01044 /* just pass off to smb_io_unstr2() passing the uni2 address as 01045 the pointer (like you would expect) */ 01046 01047 return smb_io_unistr2( desc, uni2, uni2 ? 1 : 0, ps, depth ); 01048 }
BOOL smb_io_unistr2 | ( | const char * | desc, | |
UNISTR2 * | uni2, | |||
uint32 | buffer, | |||
prs_struct * | ps, | |||
int | depth | |||
) |
parse_misc.c の 1057 行で定義されています。
参照先 UNISTR2::offset・prs_debug()・UNISTR2::uni_max_len・UNISTR2::uni_str_len.
参照元 ds_io_dom_trusts_ctr()・ds_io_dominfobasic()・ds_io_q_enum_domain_trusts()・lsa_io_dom_query_12()・lsa_io_dom_query_3()・lsa_io_dom_r_ref()・lsa_io_priv_entries()・lsa_io_q_lookup_names()・lsa_io_q_lookup_names2()・lsa_io_q_lookup_names3()・lsa_io_q_lookup_names4()・lsa_io_q_open_pol2()・lsa_io_q_priv_get_dispname()・lsa_io_q_unk_get_connuser()・lsa_io_r_priv_get_dispname()・lsa_io_r_unk_get_connuser()・lsa_io_trans_names()・lsa_io_trans_names2()・lsa_io_trustdom_query_6()・net_io_ctrl_data_info_5()・net_io_ctrl_data_info_6()・net_io_id_info1()・net_io_id_info2()・net_io_netinfo_2()・net_io_q_dsr_getdcname()・net_io_q_dsr_getdcnameex()・net_io_q_dsr_getdcnameex2()・net_io_q_dsr_getsitename()・net_io_q_getanydcname()・net_io_q_logon_ctrl()・net_io_q_logon_ctrl2()・net_io_q_req_chal()・net_io_q_sam_deltas()・net_io_q_sam_sync()・net_io_q_trust_dom()・net_io_r_dsr_getdcname()・net_io_r_dsr_getsitename()・net_io_r_getanydcname()・net_io_r_trust_dom()・net_io_sam_account_info()・net_io_sam_alias_info()・net_io_sam_domain_info()・net_io_sam_group_info()・net_io_sam_policy_info()・net_io_sam_secret_info()・net_io_sam_trustdoms_info()・net_io_user_info3()・netdfs_io_dfs_Info100_d()・netdfs_io_dfs_Info1_d()・netdfs_io_dfs_Info200_d()・netdfs_io_dfs_Info2_d()・netdfs_io_dfs_Info300_d()・netdfs_io_dfs_Info3_d()・netdfs_io_dfs_Info4_d()・netdfs_io_dfs_StorageInfo_d()・netdfs_io_q_dfs_Add()・netdfs_io_q_dfs_GetInfo()・netdfs_io_q_dfs_Remove()・pac_io_pac_logon_info()・prs_io_unistr2()・sam_io_sam_str1()・sam_io_sam_str2()・sam_io_sam_str3()・sam_io_unk_info2()・sam_io_unk_info4()・sam_io_unk_info5()・sam_io_unk_info6()・sam_io_user_info17()・sam_io_user_info20()・sam_io_user_info21()・sam_io_user_info23()・sam_io_user_info25()・sam_io_user_info7()・samr_io_group_info1()・samr_io_group_info2()・samr_io_group_info4()・samr_io_group_info5()・samr_io_q_chgpasswd_user()・samr_io_q_chgpasswd_user3()・samr_io_q_connect()・samr_io_q_connect4()・samr_io_q_connect5()・samr_io_q_create_dom_alias()・samr_io_q_create_dom_group()・samr_io_q_create_user()・samr_io_q_get_dom_pwinfo()・samr_io_q_lookup_domain()・samr_io_q_lookup_names()・samr_io_r_enum_dom_aliases()・samr_io_r_enum_dom_groups()・samr_io_r_enum_dom_users()・samr_io_r_enum_domains()・samr_io_r_lookup_rids()・smb_io_clnt_srv()・smb_io_doc_info_1()・smb_io_log_info()・smb_io_lsa_string()・spool_io_printer_driver_info_level_3()・spool_io_printer_driver_info_level_6()・spool_io_printer_info_level_1()・spool_io_printer_info_level_2()・spool_io_printer_info_level_7()・spoolss_io_addform()・spoolss_io_printer_default()・spoolss_io_q_addprinterdriver()・spoolss_io_q_addprinterdriverex()・spoolss_io_q_addprintprocessor()・spoolss_io_q_deleteform()・spoolss_io_q_deleteprinterdata()・spoolss_io_q_deleteprinterdataex()・spoolss_io_q_deleteprinterdriver()・spoolss_io_q_deleteprinterdriverex()・spoolss_io_q_deleteprinterkey()・spoolss_io_q_enumports()・spoolss_io_q_enumprinterdataex()・spoolss_io_q_enumprinterdrivers()・spoolss_io_q_enumprinterkey()・spoolss_io_q_enumprinters()・spoolss_io_q_enumprintmonitors()・spoolss_io_q_enumprintprocdatatypes()・spoolss_io_q_enumprintprocessors()・spoolss_io_q_getform()・spoolss_io_q_getprinterdata()・spoolss_io_q_getprinterdataex()・spoolss_io_q_getprinterdriver2()・spoolss_io_q_getprinterdriverdir()・spoolss_io_q_getprintprocessordirectory()・spoolss_io_q_replyopenprinter()・spoolss_io_q_resetprinter()・spoolss_io_q_rffpcnex()・spoolss_io_q_setform()・spoolss_io_q_setprinterdata()・spoolss_io_q_setprinterdataex()・spoolss_io_q_xcvdataport()・srv_io_conn_info1_str()・srv_io_file_info3_str()・srv_io_info_100()・srv_io_info_101()・srv_io_info_102()・srv_io_q_net_conn_enum()・srv_io_q_net_disk_enum()・srv_io_q_net_file_query_secdesc()・srv_io_q_net_file_set_secdesc()・srv_io_q_net_name_validate()・srv_io_q_net_remote_tod()・srv_io_q_net_sess_del()・srv_io_q_net_share_add()・srv_io_q_net_share_del()・srv_io_q_net_share_enum()・srv_io_q_net_share_get_info()・srv_io_q_net_share_set_info()・srv_io_q_net_srv_get_info()・srv_io_q_net_srv_set_info()・srv_io_share_info0_str()・srv_io_share_info1004_str()・srv_io_share_info1007_str()・srv_io_share_info1_str()・srv_io_share_info2_str()・srv_io_share_info501_str()・srv_io_share_info502_str()・svcctl_io_q_get_display_name()・svcctl_io_q_open_service()・svcctl_io_r_get_display_name().
01058 { 01059 if (uni2 == NULL) 01060 return False; 01061 01062 if (buffer) { 01063 01064 prs_debug(ps, depth, desc, "smb_io_unistr2"); 01065 depth++; 01066 01067 if(!prs_align(ps)) 01068 return False; 01069 01070 if(!prs_uint32("uni_max_len", ps, depth, &uni2->uni_max_len)) 01071 return False; 01072 if(!prs_uint32("offset ", ps, depth, &uni2->offset)) 01073 return False; 01074 if(!prs_uint32("uni_str_len", ps, depth, &uni2->uni_str_len)) 01075 return False; 01076 01077 /* buffer advanced by indicated length of string 01078 NOT by searching for null-termination */ 01079 if(!prs_unistr2(True, "buffer ", ps, depth, uni2)) 01080 return False; 01081 01082 } else { 01083 01084 prs_debug(ps, depth, desc, "smb_io_unistr2 - NULL"); 01085 depth++; 01086 memset((char *)uni2, '\0', sizeof(*uni2)); 01087 01088 } 01089 01090 return True; 01091 }
BOOL prs_unistr4 | ( | const char * | desc, | |
prs_struct * | ps, | |||
int | depth, | |||
UNISTR4 * | uni4 | |||
) |
parse_misc.c の 1097 行で定義されています。
参照先 UNISTR4::length・prs_debug()・prs_io_unistr2()・UNISTR4::size・UNISTR4::string.
参照元 eventlog_io_q_clear_eventlog()・eventlog_io_q_open_eventlog()・lsa_io_q_create_secret()・lsa_io_q_create_trusted_domain()・lsa_io_q_open_secret()・reg_io_q_create_key_ex()・reg_io_q_delete_key()・reg_io_q_delete_value()・reg_io_q_enum_val()・reg_io_q_open_entry()・reg_io_q_query_key()・reg_io_q_query_value()・reg_io_q_restore_key()・reg_io_q_save_key()・reg_io_q_set_value()・reg_io_q_shutdown()・reg_io_q_shutdown_ex()・reg_io_r_enum_key()・reg_io_r_enum_val()・reg_io_r_query_key()・samr_io_alias_info2()・samr_io_alias_info3()・shutdown_io_q_init()・shutdown_io_q_init_ex().
01098 { 01099 void *ptr; 01100 prs_debug(ps, depth, desc, "prs_unistr4"); 01101 depth++; 01102 01103 if ( !prs_uint16("length", ps, depth, &uni4->length )) 01104 return False; 01105 if ( !prs_uint16("size", ps, depth, &uni4->size )) 01106 return False; 01107 01108 ptr = uni4->string; 01109 01110 if ( !prs_pointer( desc, ps, depth, &ptr, sizeof(UNISTR2), (PRS_POINTER_CAST)prs_io_unistr2 ) ) 01111 return False; 01112 01113 uni4->string = (UNISTR2 *)ptr; 01114 01115 return True; 01116 }
BOOL prs_unistr4_hdr | ( | const char * | desc, | |
prs_struct * | ps, | |||
int | depth, | |||
UNISTR4 * | uni4 | |||
) |
parse_misc.c の 1122 行で定義されています。
参照先 UNISTR4::length・prs_debug()・prs_io_unistr2_p()・UNISTR4::size・UNISTR4::string.
参照元 lsa_io_domain_list()・prs_unistr4_array()・samr_io_alias_info1().
01123 { 01124 prs_debug(ps, depth, desc, "prs_unistr4_hdr"); 01125 depth++; 01126 01127 if ( !prs_uint16("length", ps, depth, &uni4->length) ) 01128 return False; 01129 if ( !prs_uint16("size", ps, depth, &uni4->size) ) 01130 return False; 01131 if ( !prs_io_unistr2_p(desc, ps, depth, &uni4->string) ) 01132 return False; 01133 01134 return True; 01135 }
BOOL prs_unistr4_str | ( | const char * | desc, | |
prs_struct * | ps, | |||
int | depth, | |||
UNISTR4 * | uni4 | |||
) |
parse_misc.c の 1141 行で定義されています。
参照先 prs_debug()・prs_io_unistr2()・UNISTR4::string.
参照元 lsa_io_domain_list()・prs_unistr4_array()・samr_io_alias_info1().
01142 { 01143 prs_debug(ps, depth, desc, "prs_unistr4_str"); 01144 depth++; 01145 01146 if ( !prs_io_unistr2(desc, ps, depth, uni4->string) ) 01147 return False; 01148 01149 return True; 01150 }
BOOL prs_unistr4_array | ( | const char * | desc, | |
prs_struct * | ps, | |||
int | depth, | |||
UNISTR4_ARRAY * | array | |||
) |
parse_misc.c の 1156 行で定義されています。
参照先 UNISTR4_ARRAY::count・get_talloc_ctx()・prs_debug()・prs_unistr4_hdr()・prs_unistr4_str()・UNISTR4_ARRAY::strings.
参照元 lsa_io_q_add_acct_rights()・lsa_io_q_remove_acct_rights()・lsa_io_r_enum_acct_rights()・svcctl_io_q_start_service().
01157 { 01158 unsigned int i; 01159 01160 prs_debug(ps, depth, desc, "prs_unistr4_array"); 01161 depth++; 01162 01163 if(!prs_uint32("count", ps, depth, &array->count)) 01164 return False; 01165 01166 if (UNMARSHALLING(ps)) { 01167 if (array->count) { 01168 if ( !(array->strings = TALLOC_ZERO_ARRAY( get_talloc_ctx(), UNISTR4, array->count)) ) 01169 return False; 01170 } else { 01171 array->strings = NULL; 01172 } 01173 } 01174 01175 /* write the headers and then the actual string buffer */ 01176 01177 for ( i=0; i<array->count; i++ ) { 01178 if ( !prs_unistr4_hdr( "string", ps, depth, &array->strings[i]) ) 01179 return False; 01180 } 01181 01182 for (i=0;i<array->count;i++) { 01183 if ( !prs_unistr4_str("string", ps, depth, &array->strings[i]) ) 01184 return False; 01185 } 01186 01187 return True; 01188 }
BOOL init_unistr4_array | ( | UNISTR4_ARRAY * | array, | |
uint32 | count, | |||
const char ** | strings | |||
) |
parse_misc.c の 1194 行で定義されています。
参照先 UNISTR4_ARRAY::count・get_talloc_ctx()・init_unistr4()・UNISTR4_ARRAY::strings・UNI_STR_TERMINATE.
参照元 init_q_add_acct_rights()・init_q_remove_acct_rights()・init_r_enum_acct_rights().
01195 { 01196 unsigned int i; 01197 01198 array->count = count; 01199 01200 /* allocate memory for the array of UNISTR4 objects */ 01201 01202 if (array->count) { 01203 if ( !(array->strings = TALLOC_ZERO_ARRAY(get_talloc_ctx(), UNISTR4, count )) ) 01204 return False; 01205 } else { 01206 array->strings = NULL; 01207 } 01208 01209 for ( i=0; i<count; i++ ) 01210 init_unistr4( &array->strings[i], strings[i], UNI_STR_TERMINATE ); 01211 01212 return True; 01213 }
BOOL smb_io_lockout_string_hdr | ( | const char * | desc, | |
HDR_LOCKOUT_STRING * | hdr_account_lockout, | |||
prs_struct * | ps, | |||
int | depth | |||
) |
parse_misc.c の 1215 行で定義されています。
参照先 hdr_account_lockout_string::buffer・hdr_account_lockout_string::length・prs_debug()・hdr_account_lockout_string::size.
01216 { 01217 prs_debug(ps, depth, desc, "smb_io_lockout_string_hdr"); 01218 depth++; 01219 01220 if(!prs_align(ps)) 01221 return False; 01222 01223 if(!prs_uint16("size", ps, depth, &hdr_account_lockout->size)) 01224 return False; 01225 if(!prs_uint16("length", ps, depth, &hdr_account_lockout->length)) 01226 return False; 01227 if(!prs_uint32("buffer", ps, depth, &hdr_account_lockout->buffer)) 01228 return False; 01229 01230 return True; 01231 }
BOOL smb_io_account_lockout_str | ( | const char * | desc, | |
LOCKOUT_STRING * | account_lockout, | |||
uint32 | buffer, | |||
prs_struct * | ps, | |||
int | depth | |||
) |
parse_misc.c の 1233 行で定義されています。
参照先 account_lockout_string::array_size・account_lockout_string::bad_attempt_lockout・account_lockout_string::dummy・account_lockout_string::length・account_lockout_string::lockout_duration・account_lockout_string::offset・prs_debug()・prs_uint64()・account_lockout_string::reset_count.
01234 { 01235 prs_debug(ps, depth, desc, "smb_io_account_lockout_string"); 01236 depth++; 01237 01238 if(!prs_uint32("array_size", ps, depth, &account_lockout->array_size)) 01239 return False; 01240 01241 if(!prs_uint32("offset", ps, depth, &account_lockout->offset)) 01242 return False; 01243 if(!prs_uint32("length", ps, depth, &account_lockout->length)) 01244 return False; 01245 01246 if (!prs_uint64("lockout_duration", ps, depth, &account_lockout->lockout_duration)) 01247 return False; 01248 if (!prs_uint64("reset_count", ps, depth, &account_lockout->reset_count)) 01249 return False; 01250 if (!prs_uint32("bad_attempt_lockout", ps, depth, &account_lockout->bad_attempt_lockout)) 01251 return False; 01252 if (!prs_uint32("dummy", ps, depth, &account_lockout->dummy)) 01253 return False; 01254 #if 0 01255 if(!prs_uint16s (False, "bindata", ps, depth, &account_lockout->bindata, length)) 01256 return False; 01257 #endif 01258 01259 return True; 01260 }
void init_dom_rid | ( | DOM_RID * | prid, | |
uint32 | rid, | |||
uint16 | type, | |||
uint32 | idx | |||
) |
parse_misc.c の 1266 行で定義されています。
参照先 DOM_RID::rid・DOM_RID::rid_idx・DOM_RID::type.
参照元 lookup_lsa_rids().
BOOL smb_io_dom_rid | ( | const char * | desc, | |
DOM_RID * | rid, | |||
prs_struct * | ps, | |||
int | depth | |||
) |
parse_misc.c の 1277 行で定義されています。
参照先 prs_debug()・DOM_RID::rid・DOM_RID::rid_idx・DOM_RID::type.
01278 { 01279 if (rid == NULL) 01280 return False; 01281 01282 prs_debug(ps, depth, desc, "smb_io_dom_rid"); 01283 depth++; 01284 01285 if(!prs_align(ps)) 01286 return False; 01287 01288 if(!prs_uint16("type ", ps, depth, &rid->type)) 01289 return False; 01290 if(!prs_align(ps)) 01291 return False; 01292 if(!prs_uint32("rid ", ps, depth, &rid->rid)) 01293 return False; 01294 if(!prs_uint32("rid_idx", ps, depth, &rid->rid_idx)) 01295 return False; 01296 01297 return True; 01298 }
BOOL smb_io_dom_rid2 | ( | const char * | desc, | |
DOM_RID2 * | rid, | |||
prs_struct * | ps, | |||
int | depth | |||
) |
parse_misc.c の 1304 行で定義されています。
参照先 prs_debug()・DOM_RID2::rid・DOM_RID2::rid_idx・DOM_RID2::type・DOM_RID2::unknown.
01305 { 01306 if (rid == NULL) 01307 return False; 01308 01309 prs_debug(ps, depth, desc, "smb_io_dom_rid2"); 01310 depth++; 01311 01312 if(!prs_align(ps)) 01313 return False; 01314 01315 if(!prs_uint16("type ", ps, depth, &rid->type)) 01316 return False; 01317 if(!prs_align(ps)) 01318 return False; 01319 if(!prs_uint32("rid ", ps, depth, &rid->rid)) 01320 return False; 01321 if(!prs_uint32("rid_idx", ps, depth, &rid->rid_idx)) 01322 return False; 01323 if(!prs_uint32("unknown", ps, depth, &rid->unknown)) 01324 return False; 01325 01326 return True; 01327 }
void init_dom_rid3 | ( | DOM_RID3 * | rid3, | |
uint32 | rid, | |||
uint8 | type | |||
) |
parse_misc.c の 1334 行で定義されています。
参照先 DOM_RID3::ptr_type・DOM_RID3::rid・DOM_RID3::type1・DOM_RID3::type2・DOM_RID3::unk.
01335 { 01336 rid3->rid = rid; 01337 rid3->type1 = type; 01338 rid3->ptr_type = 0x1; /* non-zero, basically. */ 01339 rid3->type2 = 0x1; 01340 rid3->unk = type; 01341 }
BOOL smb_io_dom_rid3 | ( | const char * | desc, | |
DOM_RID3 * | rid3, | |||
prs_struct * | ps, | |||
int | depth | |||
) |
parse_misc.c の 1347 行で定義されています。
参照先 prs_debug()・DOM_RID3::ptr_type・DOM_RID3::rid・DOM_RID3::type1・DOM_RID3::type2・DOM_RID3::unk.
01348 { 01349 if (rid3 == NULL) 01350 return False; 01351 01352 prs_debug(ps, depth, desc, "smb_io_dom_rid3"); 01353 depth++; 01354 01355 if(!prs_align(ps)) 01356 return False; 01357 01358 if(!prs_uint32("rid ", ps, depth, &rid3->rid)) 01359 return False; 01360 if(!prs_uint32("type1 ", ps, depth, &rid3->type1)) 01361 return False; 01362 if(!prs_uint32("ptr_type", ps, depth, &rid3->ptr_type)) 01363 return False; 01364 if(!prs_uint32("type2 ", ps, depth, &rid3->type2)) 01365 return False; 01366 if(!prs_uint32("unk ", ps, depth, &rid3->unk)) 01367 return False; 01368 01369 return True; 01370 }
void init_dom_rid4 | ( | DOM_RID4 * | rid4, | |
uint16 | unknown, | |||
uint16 | attr, | |||
uint32 | rid | |||
) |
static void init_clnt_srv | ( | DOM_CLNT_SRV * | logcln, | |
const char * | logon_srv, | |||
const char * | comp_name | |||
) | [static] |
parse_misc.c の 1387 行で定義されています。
参照先 init_unistr2()・clnt_srv_info::undoc_buffer・clnt_srv_info::undoc_buffer2・clnt_srv_info::uni_comp_name・clnt_srv_info::uni_logon_srv・UNI_STR_TERMINATE.
参照元 init_clnt_info2().
01388 { 01389 DEBUG(5,("init_clnt_srv: %d\n", __LINE__)); 01390 01391 if (logon_srv != NULL) { 01392 logcln->undoc_buffer = 1; 01393 init_unistr2(&logcln->uni_logon_srv, logon_srv, UNI_STR_TERMINATE); 01394 } else { 01395 logcln->undoc_buffer = 0; 01396 } 01397 01398 if (comp_name != NULL) { 01399 logcln->undoc_buffer2 = 1; 01400 init_unistr2(&logcln->uni_comp_name, comp_name, UNI_STR_TERMINATE); 01401 } else { 01402 logcln->undoc_buffer2 = 0; 01403 } 01404 }
BOOL smb_io_clnt_srv | ( | const char * | desc, | |
DOM_CLNT_SRV * | logcln, | |||
prs_struct * | ps, | |||
int | depth | |||
) |
parse_misc.c の 1410 行で定義されています。
参照先 prs_debug()・smb_io_unistr2()・clnt_srv_info::undoc_buffer・clnt_srv_info::undoc_buffer2・clnt_srv_info::uni_comp_name・clnt_srv_info::uni_logon_srv.
参照元 smb_io_clnt_info2()・smb_io_sam_info_ex().
01411 { 01412 if (logcln == NULL) 01413 return False; 01414 01415 prs_debug(ps, depth, desc, "smb_io_clnt_srv"); 01416 depth++; 01417 01418 if(!prs_align(ps)) 01419 return False; 01420 01421 if(!prs_uint32("undoc_buffer ", ps, depth, &logcln->undoc_buffer)) 01422 return False; 01423 01424 if (logcln->undoc_buffer != 0) { 01425 if(!smb_io_unistr2("unistr2", &logcln->uni_logon_srv, logcln->undoc_buffer, ps, depth)) 01426 return False; 01427 } 01428 01429 if(!prs_align(ps)) 01430 return False; 01431 01432 if(!prs_uint32("undoc_buffer2", ps, depth, &logcln->undoc_buffer2)) 01433 return False; 01434 01435 if (logcln->undoc_buffer2 != 0) { 01436 if(!smb_io_unistr2("unistr2", &logcln->uni_comp_name, logcln->undoc_buffer2, ps, depth)) 01437 return False; 01438 } 01439 01440 return True; 01441 }
void init_log_info | ( | DOM_LOG_INFO * | loginfo, | |
const char * | logon_srv, | |||
const char * | acct_name, | |||
uint16 | sec_chan, | |||
const char * | comp_name | |||
) |
parse_misc.c の 1447 行で定義されています。
参照先 init_unistr2()・log_info::sec_chan・log_info::undoc_buffer・log_info::uni_acct_name・log_info::uni_comp_name・log_info::uni_logon_srv・UNI_STR_TERMINATE.
参照元 init_clnt_info()・init_q_auth_2()・init_q_auth_3().
01449 { 01450 DEBUG(5,("make_log_info %d\n", __LINE__)); 01451 01452 loginfo->undoc_buffer = 1; 01453 01454 init_unistr2(&loginfo->uni_logon_srv, logon_srv, UNI_STR_TERMINATE); 01455 init_unistr2(&loginfo->uni_acct_name, acct_name, UNI_STR_TERMINATE); 01456 01457 loginfo->sec_chan = sec_chan; 01458 01459 init_unistr2(&loginfo->uni_comp_name, comp_name, UNI_STR_TERMINATE); 01460 }
BOOL smb_io_log_info | ( | const char * | desc, | |
DOM_LOG_INFO * | loginfo, | |||
prs_struct * | ps, | |||
int | depth | |||
) |
parse_misc.c の 1466 行で定義されています。
参照先 prs_debug()・log_info::sec_chan・smb_io_unistr2()・log_info::undoc_buffer・log_info::uni_acct_name・log_info::uni_comp_name・log_info::uni_logon_srv.
参照元 net_io_q_auth()・net_io_q_auth_2()・net_io_q_auth_3()・smb_io_clnt_info().
01467 { 01468 if (loginfo == NULL) 01469 return False; 01470 01471 prs_debug(ps, depth, desc, "smb_io_log_info"); 01472 depth++; 01473 01474 if(!prs_align(ps)) 01475 return False; 01476 01477 if(!prs_uint32("undoc_buffer", ps, depth, &loginfo->undoc_buffer)) 01478 return False; 01479 01480 if(!smb_io_unistr2("unistr2", &loginfo->uni_logon_srv, True, ps, depth)) 01481 return False; 01482 if(!smb_io_unistr2("unistr2", &loginfo->uni_acct_name, True, ps, depth)) 01483 return False; 01484 01485 if(!prs_uint16("sec_chan", ps, depth, &loginfo->sec_chan)) 01486 return False; 01487 01488 if(!smb_io_unistr2("unistr2", &loginfo->uni_comp_name, True, ps, depth)) 01489 return False; 01490 01491 return True; 01492 }
BOOL smb_io_chal | ( | const char * | desc, | |
DOM_CHAL * | chal, | |||
prs_struct * | ps, | |||
int | depth | |||
) |
parse_misc.c の 1498 行で定義されています。
参照先 chal_info::data・prs_debug().
参照元 net_io_q_auth()・net_io_q_auth_2()・net_io_q_auth_3()・net_io_q_req_chal()・net_io_r_auth()・net_io_r_auth_2()・net_io_r_auth_3()・net_io_r_req_chal()・smb_io_cred().
01499 { 01500 if (chal == NULL) 01501 return False; 01502 01503 prs_debug(ps, depth, desc, "smb_io_chal"); 01504 depth++; 01505 01506 if(!prs_uint8s (False, "data", ps, depth, chal->data, 8)) 01507 return False; 01508 01509 return True; 01510 }
BOOL smb_io_cred | ( | const char * | desc, | |
DOM_CRED * | cred, | |||
prs_struct * | ps, | |||
int | depth | |||
) |
parse_misc.c の 1516 行で定義されています。
参照先 cred_info::challenge・prs_debug()・smb_io_chal()・smb_io_utime()・cred_info::timestamp.
参照元 net_io_q_sam_deltas()・net_io_q_sam_sync()・net_io_r_sam_deltas()・net_io_r_sam_logoff()・net_io_r_sam_logon()・net_io_r_sam_sync()・net_io_r_srv_pwset()・net_io_r_srv_pwset2()・smb_io_clnt_info()・smb_io_clnt_info2()・smb_io_sam_info().
01517 { 01518 if (cred == NULL) 01519 return False; 01520 01521 prs_debug(ps, depth, desc, "smb_io_cred"); 01522 depth++; 01523 01524 if(!prs_align(ps)) 01525 return False; 01526 01527 if(!smb_io_chal ("", &cred->challenge, ps, depth)) 01528 return False; 01529 01530 if(!smb_io_utime("", &cred->timestamp, ps, depth)) 01531 return False; 01532 01533 return True; 01534 }
void init_clnt_info2 | ( | DOM_CLNT_INFO2 * | clnt, | |
const char * | logon_srv, | |||
const char * | comp_name, | |||
const DOM_CRED * | clnt_cred | |||
) |
parse_misc.c の 1540 行で定義されています。
参照先 clnt_info2::cred・init_clnt_srv()・clnt_info2::login・clnt_info2::ptr_cred.
参照元 init_sam_info().
01543 { 01544 DEBUG(5,("make_clnt_info: %d\n", __LINE__)); 01545 01546 init_clnt_srv(&clnt->login, logon_srv, comp_name); 01547 01548 if (clnt_cred != NULL) { 01549 clnt->ptr_cred = 1; 01550 memcpy(&clnt->cred, clnt_cred, sizeof(clnt->cred)); 01551 } else { 01552 clnt->ptr_cred = 0; 01553 } 01554 }
BOOL smb_io_clnt_info2 | ( | const char * | desc, | |
DOM_CLNT_INFO2 * | clnt, | |||
prs_struct * | ps, | |||
int | depth | |||
) |
parse_misc.c の 1560 行で定義されています。
参照先 clnt_info2::cred・clnt_info2::login・prs_debug()・clnt_info2::ptr_cred・smb_io_clnt_srv()・smb_io_cred().
参照元 smb_io_sam_info().
01561 { 01562 if (clnt == NULL) 01563 return False; 01564 01565 prs_debug(ps, depth, desc, "smb_io_clnt_info2"); 01566 depth++; 01567 01568 if(!prs_align(ps)) 01569 return False; 01570 01571 if(!smb_io_clnt_srv("", &clnt->login, ps, depth)) 01572 return False; 01573 01574 if(!prs_align(ps)) 01575 return False; 01576 01577 if(!prs_uint32("ptr_cred", ps, depth, &clnt->ptr_cred)) 01578 return False; 01579 if(!smb_io_cred("", &clnt->cred, ps, depth)) 01580 return False; 01581 01582 return True; 01583 }
void init_clnt_info | ( | DOM_CLNT_INFO * | clnt, | |
const char * | logon_srv, | |||
const char * | acct_name, | |||
uint16 | sec_chan, | |||
const char * | comp_name, | |||
const DOM_CRED * | cred | |||
) |
parse_misc.c の 1589 行で定義されています。
参照先 clnt_info::cred・init_log_info()・clnt_info::login.
参照元 init_q_srv_pwset()・init_q_srv_pwset2().
01593 { 01594 DEBUG(5,("make_clnt_info\n")); 01595 01596 init_log_info(&clnt->login, logon_srv, acct_name, sec_chan, comp_name); 01597 memcpy(&clnt->cred, cred, sizeof(clnt->cred)); 01598 }
BOOL smb_io_clnt_info | ( | const char * | desc, | |
DOM_CLNT_INFO * | clnt, | |||
prs_struct * | ps, | |||
int | depth | |||
) |
parse_misc.c の 1604 行で定義されています。
参照先 clnt_info::cred・clnt_info::login・prs_debug()・smb_io_cred()・smb_io_log_info().
参照元 net_io_q_srv_pwset()・net_io_q_srv_pwset2().
01605 { 01606 if (clnt == NULL) 01607 return False; 01608 01609 prs_debug(ps, depth, desc, "smb_io_clnt_info"); 01610 depth++; 01611 01612 if(!prs_align(ps)) 01613 return False; 01614 01615 if(!smb_io_log_info("", &clnt->login, ps, depth)) 01616 return False; 01617 if(!smb_io_cred("", &clnt->cred, ps, depth)) 01618 return False; 01619 01620 return True; 01621 }
void init_logon_id | ( | DOM_LOGON_ID * | logonid, | |
uint32 | log_id_low, | |||
uint32 | log_id_high | |||
) |
parse_misc.c の 1627 行で定義されています。
参照先 logon_info::high・logon_info::low.
参照元 init_id_info1()・init_id_info2().
01628 { 01629 DEBUG(5,("make_logon_id: %d\n", __LINE__)); 01630 01631 logonid->low = log_id_low; 01632 logonid->high = log_id_high; 01633 }
BOOL smb_io_logon_id | ( | const char * | desc, | |
DOM_LOGON_ID * | logonid, | |||
prs_struct * | ps, | |||
int | depth | |||
) |
parse_misc.c の 1639 行で定義されています。
参照先 logon_info::high・logon_info::low・prs_debug().
参照元 net_io_id_info1()・net_io_id_info2().
01640 { 01641 if (logonid == NULL) 01642 return False; 01643 01644 prs_debug(ps, depth, desc, "smb_io_logon_id"); 01645 depth++; 01646 01647 if(!prs_align(ps)) 01648 return False; 01649 01650 if(!prs_uint32("low ", ps, depth, &logonid->low )) 01651 return False; 01652 if(!prs_uint32("high", ps, depth, &logonid->high)) 01653 return False; 01654 01655 return True; 01656 }
void init_owf_info | ( | OWF_INFO * | hash, | |
const uint8 | data[16] | |||
) |
parse_misc.c の 1662 行で定義されています。
参照先 owf_info::data.
参照元 init_id_info1().
01663 { 01664 DEBUG(5,("init_owf_info: %d\n", __LINE__)); 01665 01666 if (data != NULL) 01667 memcpy(hash->data, data, sizeof(hash->data)); 01668 else 01669 memset((char *)hash->data, '\0', sizeof(hash->data)); 01670 }
BOOL smb_io_owf_info | ( | const char * | desc, | |
OWF_INFO * | hash, | |||
prs_struct * | ps, | |||
int | depth | |||
) |
parse_misc.c の 1676 行で定義されています。
参照先 owf_info::data・prs_debug().
参照元 net_io_id_info1().
01677 { 01678 if (hash == NULL) 01679 return False; 01680 01681 prs_debug(ps, depth, desc, "smb_io_owf_info"); 01682 depth++; 01683 01684 if(!prs_align(ps)) 01685 return False; 01686 01687 if(!prs_uint8s (False, "data", ps, depth, hash->data, 16)) 01688 return False; 01689 01690 return True; 01691 }
BOOL smb_io_gid | ( | const char * | desc, | |
DOM_GID * | gid, | |||
prs_struct * | ps, | |||
int | depth | |||
) |
parse_misc.c の 1697 行で定義されています。
参照先 DOM_GID::attr・DOM_GID::g_rid・prs_debug().
参照元 net_io_sam_group_info()・samr_io_gids().
01698 { 01699 if (gid == NULL) 01700 return False; 01701 01702 prs_debug(ps, depth, desc, "smb_io_gid"); 01703 depth++; 01704 01705 if(!prs_align(ps)) 01706 return False; 01707 01708 if(!prs_uint32("g_rid", ps, depth, &gid->g_rid)) 01709 return False; 01710 if(!prs_uint32("attr ", ps, depth, &gid->attr)) 01711 return False; 01712 01713 return True; 01714 }
BOOL smb_io_pol_hnd | ( | const char * | desc, | |
POLICY_HND * | pol, | |||
prs_struct * | ps, | |||
int | depth | |||
) |
parse_misc.c の 1720 行で定義されています。
参照先 pol・prs_debug()・smb_io_uuid().
参照元 eventlog_io_q_clear_eventlog()・eventlog_io_q_close_eventlog()・eventlog_io_q_get_num_records()・eventlog_io_q_get_oldest_entry()・eventlog_io_q_read_eventlog()・eventlog_io_r_close_eventlog()・eventlog_io_r_open_eventlog()・lsa_io_q_add_acct_rights()・lsa_io_q_addprivs()・lsa_io_q_close()・lsa_io_q_create_account()・lsa_io_q_create_secret()・lsa_io_q_create_trusted_domain()・lsa_io_q_delete_object()・lsa_io_q_enum_accounts()・lsa_io_q_enum_acct_rights()・lsa_io_q_enum_privs()・lsa_io_q_enum_privsaccount()・lsa_io_q_enum_trust_dom()・lsa_io_q_getsystemaccount()・lsa_io_q_lookup_names()・lsa_io_q_lookup_names2()・lsa_io_q_lookup_names3()・lsa_io_q_lookup_priv_value()・lsa_io_q_lookup_sids()・lsa_io_q_lookup_sids2()・lsa_io_q_open_account()・lsa_io_q_open_secret()・lsa_io_q_open_trusted_domain()・lsa_io_q_open_trusted_domain_by_name()・lsa_io_q_priv_get_dispname()・lsa_io_q_query()・lsa_io_q_query_dom_info()・lsa_io_q_query_info2()・lsa_io_q_query_sec_obj()・lsa_io_q_query_trusted_domain_info()・lsa_io_q_query_trusted_domain_info_by_name()・lsa_io_q_query_trusted_domain_info_by_sid()・lsa_io_q_remove_acct_rights()・lsa_io_q_removeprivs()・lsa_io_q_set()・lsa_io_q_set_secret()・lsa_io_q_setsystemaccount()・lsa_io_r_close()・lsa_io_r_create_account()・lsa_io_r_create_secret()・lsa_io_r_create_trusted_domain()・lsa_io_r_open_account()・lsa_io_r_open_pol()・lsa_io_r_open_pol2()・lsa_io_r_open_secret()・lsa_io_r_open_trusted_domain()・lsa_io_r_open_trusted_domain_by_name()・reg_io_q_close()・reg_io_q_create_key_ex()・reg_io_q_delete_key()・reg_io_q_delete_value()・reg_io_q_enum_key()・reg_io_q_enum_val()・reg_io_q_flush_key()・reg_io_q_get_key_sec()・reg_io_q_getversion()・reg_io_q_open_entry()・reg_io_q_query_key()・reg_io_q_query_value()・reg_io_q_restore_key()・reg_io_q_save_key()・reg_io_q_set_key_sec()・reg_io_q_set_value()・reg_io_r_close()・reg_io_r_create_key_ex()・reg_io_r_open_entry()・reg_io_r_open_hive()・samr_io_q_add_aliasmem()・samr_io_q_add_groupmem()・samr_io_q_close_hnd()・samr_io_q_create_dom_alias()・samr_io_q_create_dom_group()・samr_io_q_create_user()・samr_io_q_del_aliasmem()・samr_io_q_del_groupmem()・samr_io_q_delete_alias()・samr_io_q_delete_dom_alias()・samr_io_q_delete_dom_group()・samr_io_q_delete_dom_user()・samr_io_q_enum_dom_aliases()・samr_io_q_enum_dom_groups()・samr_io_q_enum_dom_users()・samr_io_q_enum_domains()・samr_io_q_get_dispenum_index()・samr_io_q_get_usrdom_pwinfo()・samr_io_q_lookup_domain()・samr_io_q_lookup_names()・samr_io_q_lookup_rids()・samr_io_q_open_alias()・samr_io_q_open_domain()・samr_io_q_open_group()・samr_io_q_open_user()・samr_io_q_query_aliasinfo()・samr_io_q_query_aliasmem()・samr_io_q_query_dispinfo()・samr_io_q_query_domain_info()・samr_io_q_query_domain_info2()・samr_io_q_query_groupinfo()・samr_io_q_query_groupmem()・samr_io_q_query_sec_obj()・samr_io_q_query_useraliases()・samr_io_q_query_usergroups()・samr_io_q_query_userinfo()・samr_io_q_remove_sid_foreign_domain()・samr_io_q_set_aliasinfo()・samr_io_q_set_domain_info()・samr_io_q_set_groupinfo()・samr_io_q_set_sec_obj()・samr_io_q_set_userinfo()・samr_io_q_set_userinfo2()・samr_io_r_close_hnd()・samr_io_r_connect()・samr_io_r_connect4()・samr_io_r_connect5()・samr_io_r_connect_anon()・samr_io_r_create_dom_alias()・samr_io_r_create_dom_group()・samr_io_r_create_user()・samr_io_r_delete_alias()・samr_io_r_delete_dom_alias()・samr_io_r_delete_dom_group()・samr_io_r_delete_dom_user()・samr_io_r_open_alias()・samr_io_r_open_domain()・samr_io_r_open_group()・samr_io_r_open_user()・spoolss_io_q_abortprinter()・spoolss_io_q_addform()・spoolss_io_q_addjob()・spoolss_io_q_closeprinter()・spoolss_io_q_deleteform()・spoolss_io_q_deleteprinter()・spoolss_io_q_deleteprinterdata()・spoolss_io_q_deleteprinterdataex()・spoolss_io_q_deleteprinterkey()・spoolss_io_q_enddocprinter()・spoolss_io_q_endpageprinter()・spoolss_io_q_enumforms()・spoolss_io_q_enumjobs()・spoolss_io_q_enumprinterdata()・spoolss_io_q_enumprinterdataex()・spoolss_io_q_enumprinterkey()・spoolss_io_q_fcpn()・spoolss_io_q_getform()・spoolss_io_q_getjob()・spoolss_io_q_getprinter()・spoolss_io_q_getprinterdata()・spoolss_io_q_getprinterdataex()・spoolss_io_q_getprinterdriver2()・spoolss_io_q_reply_rrpcn()・spoolss_io_q_replycloseprinter()・spoolss_io_q_resetprinter()・spoolss_io_q_rffpcnex()・spoolss_io_q_rfnpcnex()・spoolss_io_q_routerreplyprinter()・spoolss_io_q_schedulejob()・spoolss_io_q_setform()・spoolss_io_q_setjob()・spoolss_io_q_setprinter()・spoolss_io_q_setprinterdata()・spoolss_io_q_setprinterdataex()・spoolss_io_q_startdocprinter()・spoolss_io_q_startpageprinter()・spoolss_io_q_writeprinter()・spoolss_io_q_xcvdataport()・spoolss_io_r_addprinterex()・spoolss_io_r_closeprinter()・spoolss_io_r_deleteprinter()・spoolss_io_r_open_printer()・spoolss_io_r_open_printer_ex()・spoolss_io_r_replycloseprinter()・spoolss_io_r_replyopenprinter()・svcctl_io_q_close_service()・svcctl_io_q_control_service()・svcctl_io_q_enum_dependent_services()・svcctl_io_q_enum_services_status()・svcctl_io_q_get_display_name()・svcctl_io_q_lock_service_db()・svcctl_io_q_open_service()・svcctl_io_q_query_service_config()・svcctl_io_q_query_service_config2()・svcctl_io_q_query_service_sec()・svcctl_io_q_query_service_status_ex()・svcctl_io_q_query_status()・svcctl_io_q_set_service_sec()・svcctl_io_q_start_service()・svcctl_io_q_unlock_service_db()・svcctl_io_r_close_service()・svcctl_io_r_lock_service_db()・svcctl_io_r_open_scmanager()・svcctl_io_r_open_service().
01721 { 01722 if (pol == NULL) 01723 return False; 01724 01725 prs_debug(ps, depth, desc, "smb_io_pol_hnd"); 01726 depth++; 01727 01728 if(!prs_align(ps)) 01729 return False; 01730 01731 if(UNMARSHALLING(ps)) 01732 ZERO_STRUCTP(pol); 01733 01734 if (!prs_uint32("handle_type", ps, depth, &pol->handle_type)) 01735 return False; 01736 if (!smb_io_uuid("uuid", (struct GUID*)&pol->uuid, ps, depth)) 01737 return False; 01738 01739 return True; 01740 }
void init_unistr3 | ( | UNISTR3 * | str, | |
const char * | buf | |||
) |
parse_misc.c の 1746 行で定義されています。
参照先 UNISTR::buffer・get_talloc_ctx()・rpcstr_push()・smb_panic()・UNISTR3::str・UNISTR3::uni_str_len.
参照元 _srv_net_disk_enum().
01747 { 01748 if (buf == NULL) { 01749 str->uni_str_len=0; 01750 str->str.buffer = NULL; 01751 return; 01752 } 01753 01754 str->uni_str_len = strlen(buf) + 1; 01755 01756 if (str->uni_str_len) { 01757 str->str.buffer = TALLOC_ZERO_ARRAY(get_talloc_ctx(), uint16, str->uni_str_len); 01758 if (str->str.buffer == NULL) 01759 smb_panic("init_unistr3: malloc fail\n"); 01760 01761 rpcstr_push((char *)str->str.buffer, buf, str->uni_str_len * sizeof(uint16), STR_TERMINATE); 01762 } else { 01763 str->str.buffer = NULL; 01764 } 01765 }
BOOL smb_io_unistr3 | ( | const char * | desc, | |
UNISTR3 * | name, | |||
prs_struct * | ps, | |||
int | depth | |||
) |
parse_misc.c の 1771 行で定義されています。
参照先 name・prs_debug().
01772 { 01773 if (name == NULL) 01774 return False; 01775 01776 prs_debug(ps, depth, desc, "smb_io_unistr3"); 01777 depth++; 01778 01779 if(!prs_align(ps)) 01780 return False; 01781 01782 if(!prs_uint32("uni_str_len", ps, depth, &name->uni_str_len)) 01783 return False; 01784 01785 /* we're done if there is no string */ 01786 01787 if ( name->uni_str_len == 0 ) 01788 return True; 01789 01790 /* don't know if len is specified by uni_str_len member... */ 01791 /* assume unicode string is unicode-null-terminated, instead */ 01792 01793 if(!prs_unistr3(True, "unistr", name, ps, depth)) 01794 return False; 01795 01796 return True; 01797 }
BOOL prs_uint64 | ( | const char * | name, | |
prs_struct * | ps, | |||
int | depth, | |||
uint64 * | data64 | |||
) |
parse_misc.c の 1802 行で定義されています。
参照元 _reg_perfcount_marshall_perf_data_block()・_reg_perfcount_marshall_perf_objects()・net_io_q_sam_deltas()・net_io_r_sam_deltas()・net_io_sam_delta_mod_count()・net_io_sam_domain_info()・net_io_sam_policy_info()・net_io_sam_privs_info()・sam_io_unk_info13()・sam_io_unk_info2()・sam_io_unk_info8()・smb_io_account_lockout_str()・smb_io_printer_driver_info_6()・spool_io_printer_driver_info_level_6().
01803 { 01804 if (UNMARSHALLING(ps)) { 01805 uint32 high, low; 01806 01807 if (!prs_uint32(name, ps, depth+1, &low)) 01808 return False; 01809 01810 if (!prs_uint32(name, ps, depth+1, &high)) 01811 return False; 01812 01813 *data64 = ((uint64_t)high << 32) + low; 01814 01815 return True; 01816 } else { 01817 uint32 high = (*data64) >> 32, low = (*data64) & 0xFFFFFFFF; 01818 return prs_uint32(name, ps, depth+1, &low) && 01819 prs_uint32(name, ps, depth+1, &high); 01820 } 01821 }
BOOL smb_io_bufhdr2 | ( | const char * | desc, | |
BUFHDR2 * | hdr, | |||
prs_struct * | ps, | |||
int | depth | |||
) |
parse_misc.c の 1826 行で定義されています。
参照先 BUFHDR2::buffer・BUFHDR2::info_level・BUFHDR2::length・prs_debug().
参照元 net_io_sam_account_info()・net_io_sam_alias_info()・net_io_sam_group_info()・net_io_sam_policy_info()・net_io_sam_privs_info().
01827 { 01828 prs_debug(ps, depth, desc, "smb_io_bufhdr2"); 01829 depth++; 01830 01831 prs_align(ps); 01832 prs_uint32("info_level", ps, depth, &(hdr->info_level)); 01833 prs_uint32("length ", ps, depth, &(hdr->length )); 01834 prs_uint32("buffer ", ps, depth, &(hdr->buffer )); 01835 01836 return True; 01837 }
BOOL smb_io_bufhdr4 | ( | const char * | desc, | |
BUFHDR4 * | hdr, | |||
prs_struct * | ps, | |||
int | depth | |||
) |
parse_misc.c の 1842 行で定義されています。
参照先 BUFHDR4::buffer・prs_debug()・BUFHDR4::size.
01843 { 01844 prs_debug(ps, depth, desc, "smb_io_bufhdr4"); 01845 depth++; 01846 01847 prs_align(ps); 01848 prs_uint32("size", ps, depth, &hdr->size); 01849 prs_uint32("buffer", ps, depth, &hdr->buffer); 01850 01851 return True; 01852 }
BOOL smb_io_rpc_blob | ( | const char * | desc, | |
RPC_DATA_BLOB * | blob, | |||
prs_struct * | ps, | |||
int | depth | |||
) |
parse_misc.c の 1858 行で定義されています。
参照先 RPC_DATA_BLOB::buf_len・RPC_DATA_BLOB::buffer・prs_debug().
参照元 net_io_sam_account_info()・net_io_sam_alias_info()・net_io_sam_domain_info()・net_io_sam_group_info()・net_io_sam_policy_info()・reg_io_q_set_value().
01859 { 01860 prs_debug(ps, depth, desc, "smb_io_rpc_blob"); 01861 depth++; 01862 01863 prs_align(ps); 01864 if ( !prs_uint32("buf_len", ps, depth, &blob->buf_len) ) 01865 return False; 01866 01867 if ( blob->buf_len == 0 ) 01868 return True; 01869 01870 if (UNMARSHALLING(ps)) { 01871 blob->buffer = PRS_ALLOC_MEM(ps, uint8, blob->buf_len); 01872 if (!blob->buffer) { 01873 return False; 01874 } 01875 } 01876 01877 if ( !prs_uint8s(True, "buffer", ps, depth, blob->buffer, blob->buf_len) ) 01878 return False; 01879 01880 return True; 01881 }
parse_misc.c の 1887 行で定義されています。
参照先 UNIHDR::buffer・UNIHDR::uni_max_len・UNIHDR::uni_str_len.
01888 { 01889 if (hdr == NULL) 01890 { 01891 return False; 01892 } 01893 hdr->uni_str_len = 2 * len; 01894 hdr->uni_max_len = 2 * len; 01895 hdr->buffer = len != 0 ? 1 : 0; 01896 01897 return True; 01898 }
parse_misc.c の 1903 行で定義されています。
参照先 BUFHDR2::buffer・BUFHDR2::info_level・BUFHDR2::length.
01904 { 01905 hdr->info_level = info_level; 01906 hdr->length = length; 01907 hdr->buffer = buffer; 01908 01909 return True; 01910 }
uint32 str_len_uni | ( | UNISTR * | source | ) |
parse_misc.c の 1916 行で定義されています。
参照先 UNISTR::buffer.
参照元 size_of_relative_string()・smb_io_relarraystr()・spoolss_size_driverdir_info_1()・spoolss_size_printprocessordirectory_info_1()・svcctl_sizeof_service_description().
01917 { 01918 uint32 i=0; 01919 01920 if (!source->buffer) 01921 return 0; 01922 01923 while (source->buffer[i]) 01924 i++; 01925 01926 return i; 01927 }
TALLOC_CTX* current_rpc_talloc = NULL [static] |
TALLOC_CTX* main_loop_talloc = NULL [static] |