NTSTATUS rpccli_samr_connect | ( | struct rpc_pipe_client * | cli, | |
TALLOC_CTX * | mem_ctx, | |||
uint32 | access_mask, | |||
POLICY_HND * | connect_pol | |||
) |
cli_samr.c の 28 行で定義されています。
参照先 cli・r_samr_connect_info::connect_pol・cli_state::desthost・init_samr_q_connect()・result・samr_io_q_connect()・samr_io_r_connect()・r_samr_connect_info::status.
参照元 cac_SamConnect()・cm_connect_sam()・net_rpc_join_newstyle()・netdom_join_domain()・netdom_leave_domain()・rpc_add_aliasmem()・rpc_add_groupmem()・rpc_alias_add_internals()・rpc_aliaslist_internals()・rpc_del_aliasmem()・rpc_del_groupmem()・rpc_group_add_internals()・rpc_group_delete_internals()・rpc_group_list_internals()・rpc_group_members_internals()・rpc_group_rename_internals()・rpc_info_internals()・rpc_sh_acct_do()・rpc_sh_handle_user()・rpc_trustdom_add_internals()・rpc_trustdom_del_internals()・rpc_trustdom_list()・rpc_user_add_internals()・rpc_user_del_internals()・rpc_user_info_internals()・rpc_user_list_internals()・rpc_user_password_internals()・rpc_user_rename_internals()・samr_connect()・try_samr_connects().
00030 { 00031 prs_struct qbuf, rbuf; 00032 SAMR_Q_CONNECT q; 00033 SAMR_R_CONNECT r; 00034 NTSTATUS result = NT_STATUS_UNSUCCESSFUL; 00035 00036 DEBUG(10,("cli_samr_connect to %s\n", cli->cli->desthost)); 00037 00038 ZERO_STRUCT(q); 00039 ZERO_STRUCT(r); 00040 00041 /* Marshall data and send request */ 00042 00043 init_samr_q_connect(&q, cli->cli->desthost, access_mask); 00044 00045 CLI_DO_RPC(cli, mem_ctx, PI_SAMR, SAMR_CONNECT, 00046 q, r, 00047 qbuf, rbuf, 00048 samr_io_q_connect, 00049 samr_io_r_connect, 00050 NT_STATUS_UNSUCCESSFUL); 00051 /* Return output parameters */ 00052 00053 if (NT_STATUS_IS_OK(result = r.status)) { 00054 *connect_pol = r.connect_pol; 00055 #ifdef __INSURE__ 00056 connect_pol->marker = malloc(1); 00057 #endif 00058 } 00059 00060 return result; 00061 }
NTSTATUS rpccli_samr_connect4 | ( | struct rpc_pipe_client * | cli, | |
TALLOC_CTX * | mem_ctx, | |||
uint32 | access_mask, | |||
POLICY_HND * | connect_pol | |||
) |
cli_samr.c の 65 行で定義されています。
参照先 cli・r_samr_connect_info::connect_pol・cli_state::desthost・init_samr_q_connect4()・result・samr_io_q_connect4()・samr_io_r_connect4()・r_samr_connect_info::status.
参照元 cac_SamConnect()・try_samr_connects().
00067 { 00068 prs_struct qbuf, rbuf; 00069 SAMR_Q_CONNECT4 q; 00070 SAMR_R_CONNECT4 r; 00071 NTSTATUS result = NT_STATUS_UNSUCCESSFUL; 00072 00073 ZERO_STRUCT(q); 00074 ZERO_STRUCT(r); 00075 00076 /* Marshall data and send request */ 00077 00078 init_samr_q_connect4(&q, cli->cli->desthost, access_mask); 00079 00080 CLI_DO_RPC(cli, mem_ctx, PI_SAMR, SAMR_CONNECT4, 00081 q, r, 00082 qbuf, rbuf, 00083 samr_io_q_connect4, 00084 samr_io_r_connect4, 00085 NT_STATUS_UNSUCCESSFUL); 00086 00087 /* Return output parameters */ 00088 00089 if (NT_STATUS_IS_OK(result = r.status)) { 00090 *connect_pol = r.connect_pol; 00091 #ifdef __INSURE__ 00092 connect_pol->marker = malloc(1); 00093 #endif 00094 } 00095 00096 return result; 00097 }
NTSTATUS rpccli_samr_close | ( | struct rpc_pipe_client * | cli, | |
TALLOC_CTX * | mem_ctx, | |||
POLICY_HND * | connect_pol | |||
) |
cli_samr.c の 101 行で定義されています。
参照先 cli・init_samr_q_close_hnd()・r_samr_close_hnd_info::pol・result・samr_io_q_close_hnd()・samr_io_r_close_hnd()・r_samr_close_hnd_info::status.
参照元 cac_SamClose()・cmd_samr_chgpasswd2()・cmd_samr_chgpasswd3()・cmd_samr_create_dom_alias()・cmd_samr_create_dom_group()・cmd_samr_create_dom_user()・cmd_samr_delete_alias()・cmd_samr_delete_dom_user()・cmd_samr_enum_als_groups()・cmd_samr_enum_dom_groups()・cmd_samr_enum_dom_users()・cmd_samr_get_usrdom_pwinfo()・cmd_samr_lookup_domain()・cmd_samr_lookup_names()・cmd_samr_lookup_rids()・cmd_samr_query_aliasmem()・cmd_samr_query_dispinfo()・cmd_samr_query_dominfo()・cmd_samr_query_group()・cmd_samr_query_groupmem()・cmd_samr_query_sec_obj()・cmd_samr_query_user()・cmd_samr_query_useraliases()・cmd_samr_query_usergroups()・lookup_groupmem()・lookup_usergroups()・net_rpc_join_newstyle()・netdom_join_domain()・netdom_leave_domain()・query_user()・rpc_add_aliasmem()・rpc_add_groupmem()・rpc_aliaslist_internals()・rpc_del_aliasmem()・rpc_del_groupmem()・rpc_fetch_domain_aliases()・rpc_group_delete_internals()・rpc_group_list_internals()・rpc_group_members_internals()・rpc_sh_acct_do()・rpc_sh_handle_user()・rpc_trustdom_list()・winbindd_dual_pam_auth_samlogon().
00103 { 00104 prs_struct qbuf, rbuf; 00105 SAMR_Q_CLOSE_HND q; 00106 SAMR_R_CLOSE_HND r; 00107 NTSTATUS result = NT_STATUS_UNSUCCESSFUL; 00108 00109 DEBUG(10,("cli_samr_close\n")); 00110 00111 ZERO_STRUCT(q); 00112 ZERO_STRUCT(r); 00113 00114 /* Marshall data and send request */ 00115 00116 init_samr_q_close_hnd(&q, connect_pol); 00117 00118 CLI_DO_RPC(cli, mem_ctx, PI_SAMR, SAMR_CLOSE_HND, 00119 q, r, 00120 qbuf, rbuf, 00121 samr_io_q_close_hnd, 00122 samr_io_r_close_hnd, 00123 NT_STATUS_UNSUCCESSFUL); 00124 00125 /* Return output parameters */ 00126 00127 if (NT_STATUS_IS_OK(result = r.status)) { 00128 #ifdef __INSURE__ 00129 SAFE_FREE(connect_pol->marker); 00130 #endif 00131 *connect_pol = r.pol; 00132 } 00133 00134 return result; 00135 }
NTSTATUS rpccli_samr_open_domain | ( | struct rpc_pipe_client * | cli, | |
TALLOC_CTX * | mem_ctx, | |||
POLICY_HND * | connect_pol, | |||
uint32 | access_mask, | |||
const DOM_SID * | domain_sid, | |||
POLICY_HND * | domain_pol | |||
) |
cli_samr.c の 139 行で定義されています。
参照先 cli・r_samr_open_domain_info::domain_pol・domain_sid・init_samr_q_open_domain()・result・samr_io_q_open_domain()・samr_io_r_open_domain()・sid_string_static()・r_samr_open_domain_info::status.
参照元 cac_SamOpenDomain()・cm_connect_sam()・cmd_samr_chgpasswd2()・cmd_samr_chgpasswd3()・cmd_samr_create_dom_alias()・cmd_samr_create_dom_group()・cmd_samr_create_dom_user()・cmd_samr_delete_alias()・cmd_samr_delete_dom_user()・cmd_samr_enum_als_groups()・cmd_samr_enum_dom_groups()・cmd_samr_enum_dom_users()・cmd_samr_get_usrdom_pwinfo()・cmd_samr_lookup_domain()・cmd_samr_lookup_names()・cmd_samr_lookup_rids()・cmd_samr_query_aliasmem()・cmd_samr_query_dispinfo()・cmd_samr_query_dominfo()・cmd_samr_query_group()・cmd_samr_query_groupmem()・cmd_samr_query_sec_obj()・cmd_samr_query_user()・cmd_samr_query_useraliases()・cmd_samr_query_usergroups()・net_rpc_join_newstyle()・netdom_join_domain()・netdom_leave_domain()・rpc_add_aliasmem()・rpc_add_groupmem()・rpc_alias_add_internals()・rpc_del_aliasmem()・rpc_del_groupmem()・rpc_fetch_domain_aliases()・rpc_group_add_internals()・rpc_group_delete_internals()・rpc_group_list_internals()・rpc_group_members_internals()・rpc_group_rename_internals()・rpc_info_internals()・rpc_sh_acct_do()・rpc_sh_handle_user()・rpc_trustdom_add_internals()・rpc_trustdom_del_internals()・rpc_trustdom_list()・rpc_user_add_internals()・rpc_user_del_internals()・rpc_user_info_internals()・rpc_user_list_internals()・rpc_user_password_internals()・rpc_user_rename_internals()・samr_open_domain().
00143 { 00144 prs_struct qbuf, rbuf; 00145 SAMR_Q_OPEN_DOMAIN q; 00146 SAMR_R_OPEN_DOMAIN r; 00147 NTSTATUS result = NT_STATUS_UNSUCCESSFUL; 00148 00149 DEBUG(10,("cli_samr_open_domain with sid %s\n", sid_string_static(domain_sid) )); 00150 00151 ZERO_STRUCT(q); 00152 ZERO_STRUCT(r); 00153 00154 /* Marshall data and send request */ 00155 00156 init_samr_q_open_domain(&q, connect_pol, access_mask, domain_sid); 00157 00158 CLI_DO_RPC(cli, mem_ctx, PI_SAMR, SAMR_OPEN_DOMAIN, 00159 q, r, 00160 qbuf, rbuf, 00161 samr_io_q_open_domain, 00162 samr_io_r_open_domain, 00163 NT_STATUS_UNSUCCESSFUL); 00164 00165 /* Return output parameters */ 00166 00167 if (NT_STATUS_IS_OK(result = r.status)) { 00168 *domain_pol = r.domain_pol; 00169 #ifdef __INSURE__ 00170 domain_pol->marker = malloc(1); 00171 #endif 00172 } 00173 00174 return result; 00175 }
NTSTATUS rpccli_samr_open_user | ( | struct rpc_pipe_client * | cli, | |
TALLOC_CTX * | mem_ctx, | |||
POLICY_HND * | domain_pol, | |||
uint32 | access_mask, | |||
uint32 | user_rid, | |||
POLICY_HND * | user_pol | |||
) |
cli_samr.c の 177 行で定義されています。
参照先 cli・init_samr_q_open_user()・result・samr_io_q_open_user()・samr_io_r_open_user()・r_samr_open_user_info::status・r_samr_open_user_info::user_pol.
参照元 cac_SamOpenUser()・cmd_samr_delete_dom_user()・cmd_samr_get_usrdom_pwinfo()・cmd_samr_query_sec_obj()・cmd_samr_query_user()・cmd_samr_query_usergroups()・lookup_usergroups()・net_rpc_join_newstyle()・netdom_join_domain()・netdom_leave_domain()・query_user()・rpc_group_delete_internals()・rpc_sh_handle_user()・rpc_trustdom_del_internals()・rpc_user_add_internals()・rpc_user_del_internals()・rpc_user_info_internals()・rpc_user_password_internals()・rpc_user_rename_internals()・winbindd_dual_pam_auth_samlogon().
00181 { 00182 prs_struct qbuf, rbuf; 00183 SAMR_Q_OPEN_USER q; 00184 SAMR_R_OPEN_USER r; 00185 NTSTATUS result = NT_STATUS_UNSUCCESSFUL; 00186 00187 DEBUG(10,("cli_samr_open_user with rid 0x%x\n", user_rid )); 00188 00189 ZERO_STRUCT(q); 00190 ZERO_STRUCT(r); 00191 00192 /* Marshall data and send request */ 00193 00194 init_samr_q_open_user(&q, domain_pol, access_mask, user_rid); 00195 00196 CLI_DO_RPC(cli, mem_ctx, PI_SAMR, SAMR_OPEN_USER, 00197 q, r, 00198 qbuf, rbuf, 00199 samr_io_q_open_user, 00200 samr_io_r_open_user, 00201 NT_STATUS_UNSUCCESSFUL); 00202 00203 /* Return output parameters */ 00204 00205 if (NT_STATUS_IS_OK(result = r.status)) { 00206 *user_pol = r.user_pol; 00207 #ifdef __INSURE__ 00208 user_pol->marker = malloc(1); 00209 #endif 00210 } 00211 00212 return result; 00213 }
NTSTATUS rpccli_samr_open_group | ( | struct rpc_pipe_client * | cli, | |
TALLOC_CTX * | mem_ctx, | |||
POLICY_HND * | domain_pol, | |||
uint32 | access_mask, | |||
uint32 | group_rid, | |||
POLICY_HND * | group_pol | |||
) |
cli_samr.c の 217 行で定義されています。
参照先 cli・init_samr_q_open_group()・r_samr_open_group_info::pol・result・samr_io_q_open_group()・samr_io_r_open_group()・r_samr_open_group_info::status.
参照元 cac_SamOpenGroup()・cmd_samr_query_group()・cmd_samr_query_groupmem()・lookup_groupmem()・rpc_add_groupmem()・rpc_del_groupmem()・rpc_group_delete_internals()・rpc_group_rename_internals()・rpc_list_group_members().
00221 { 00222 prs_struct qbuf, rbuf; 00223 SAMR_Q_OPEN_GROUP q; 00224 SAMR_R_OPEN_GROUP r; 00225 NTSTATUS result = NT_STATUS_UNSUCCESSFUL; 00226 00227 DEBUG(10,("cli_samr_open_group with rid 0x%x\n", group_rid )); 00228 00229 ZERO_STRUCT(q); 00230 ZERO_STRUCT(r); 00231 00232 /* Marshall data and send request */ 00233 00234 init_samr_q_open_group(&q, domain_pol, access_mask, group_rid); 00235 00236 CLI_DO_RPC(cli, mem_ctx, PI_SAMR, SAMR_OPEN_GROUP, 00237 q, r, 00238 qbuf, rbuf, 00239 samr_io_q_open_group, 00240 samr_io_r_open_group, 00241 NT_STATUS_UNSUCCESSFUL); 00242 00243 /* Return output parameters */ 00244 00245 if (NT_STATUS_IS_OK(result = r.status)) { 00246 *group_pol = r.pol; 00247 #ifdef __INSURE__ 00248 group_pol->marker = malloc(1); 00249 #endif 00250 } 00251 00252 return result; 00253 }
NTSTATUS rpccli_samr_create_dom_group | ( | struct rpc_pipe_client * | cli, | |
TALLOC_CTX * | mem_ctx, | |||
POLICY_HND * | domain_pol, | |||
const char * | group_name, | |||
uint32 | access_mask, | |||
POLICY_HND * | group_pol | |||
) |
cli_samr.c の 257 行で定義されています。
参照先 cli・init_samr_q_create_dom_group()・r_samr_create_dom_group_info::pol・result・samr_io_q_create_dom_group()・samr_io_r_create_dom_group()・r_samr_create_dom_group_info::status.
参照元 cac_SamCreateGroup()・cmd_samr_create_dom_group()・rpc_group_add_internals().
00261 { 00262 prs_struct qbuf, rbuf; 00263 SAMR_Q_CREATE_DOM_GROUP q; 00264 SAMR_R_CREATE_DOM_GROUP r; 00265 NTSTATUS result = NT_STATUS_UNSUCCESSFUL; 00266 00267 DEBUG(10,("cli_samr_create_dom_group\n")); 00268 00269 ZERO_STRUCT(q); 00270 ZERO_STRUCT(r); 00271 00272 /* Marshall data and send request */ 00273 00274 init_samr_q_create_dom_group(&q, domain_pol, group_name, access_mask); 00275 00276 CLI_DO_RPC(cli, mem_ctx, PI_SAMR, SAMR_CREATE_DOM_GROUP, 00277 q, r, 00278 qbuf, rbuf, 00279 samr_io_q_create_dom_group, 00280 samr_io_r_create_dom_group, 00281 NT_STATUS_UNSUCCESSFUL); 00282 00283 /* Return output parameters */ 00284 00285 result = r.status; 00286 00287 if (NT_STATUS_IS_OK(result)) 00288 *group_pol = r.pol; 00289 00290 return result; 00291 }
NTSTATUS rpccli_samr_add_groupmem | ( | struct rpc_pipe_client * | cli, | |
TALLOC_CTX * | mem_ctx, | |||
POLICY_HND * | group_pol, | |||
uint32 | rid | |||
) |
cli_samr.c の 295 行で定義されています。
参照先 cli・init_samr_q_add_groupmem()・result・samr_io_q_add_groupmem()・samr_io_r_add_groupmem()・r_samr_add_group_mem_info::status.
参照元 cac_SamAddGroupMember()・cac_SamClearGroupMembers()・cac_SamSetGroupMembers()・rpc_add_groupmem().
00297 { 00298 prs_struct qbuf, rbuf; 00299 SAMR_Q_ADD_GROUPMEM q; 00300 SAMR_R_ADD_GROUPMEM r; 00301 NTSTATUS result = NT_STATUS_UNSUCCESSFUL; 00302 00303 DEBUG(10,("cli_samr_add_groupmem\n")); 00304 00305 ZERO_STRUCT(q); 00306 ZERO_STRUCT(r); 00307 00308 /* Marshall data and send request */ 00309 00310 init_samr_q_add_groupmem(&q, group_pol, rid); 00311 00312 CLI_DO_RPC(cli, mem_ctx, PI_SAMR, SAMR_ADD_GROUPMEM, 00313 q, r, 00314 qbuf, rbuf, 00315 samr_io_q_add_groupmem, 00316 samr_io_r_add_groupmem, 00317 NT_STATUS_UNSUCCESSFUL); 00318 00319 /* Return output parameters */ 00320 00321 result = r.status; 00322 00323 return result; 00324 }
NTSTATUS rpccli_samr_del_groupmem | ( | struct rpc_pipe_client * | cli, | |
TALLOC_CTX * | mem_ctx, | |||
POLICY_HND * | group_pol, | |||
uint32 | rid | |||
) |
cli_samr.c の 328 行で定義されています。
参照先 cli・init_samr_q_del_groupmem()・result・samr_io_q_del_groupmem()・samr_io_r_del_groupmem()・r_samr_del_group_mem_info::status.
参照元 cac_SamClearGroupMembers()・cac_SamRemoveGroupMember()・rpc_del_groupmem()・rpc_group_delete_internals().
00330 { 00331 prs_struct qbuf, rbuf; 00332 SAMR_Q_DEL_GROUPMEM q; 00333 SAMR_R_DEL_GROUPMEM r; 00334 NTSTATUS result = NT_STATUS_UNSUCCESSFUL; 00335 00336 DEBUG(10,("cli_samr_del_groupmem\n")); 00337 00338 ZERO_STRUCT(q); 00339 ZERO_STRUCT(r); 00340 00341 /* Marshall data and send request */ 00342 00343 init_samr_q_del_groupmem(&q, group_pol, rid); 00344 00345 CLI_DO_RPC(cli, mem_ctx, PI_SAMR, SAMR_DEL_GROUPMEM, 00346 q, r, 00347 qbuf, rbuf, 00348 samr_io_q_del_groupmem, 00349 samr_io_r_del_groupmem, 00350 NT_STATUS_UNSUCCESSFUL); 00351 00352 /* Return output parameters */ 00353 00354 result = r.status; 00355 00356 return result; 00357 }
NTSTATUS rpccli_samr_query_userinfo | ( | struct rpc_pipe_client * | cli, | |
TALLOC_CTX * | mem_ctx, | |||
const POLICY_HND * | user_pol, | |||
uint16 | switch_value, | |||
SAM_USERINFO_CTR ** | ctr | |||
) |
cli_samr.c の 361 行で定義されています。
参照先 cli・r_samr_query_user_info::ctr・init_samr_q_query_userinfo()・result・samr_io_q_query_userinfo()・samr_io_r_query_userinfo()・r_samr_query_user_info::status.
参照元 cac_SamDisableUser()・cac_SamEnableUser()・cac_SamGetUserInfo()・cac_SamGetUserInfoCtr()・cmd_samr_query_user()・netdom_leave_domain()・query_user()・rpc_group_delete_internals()・rpc_sh_user_flag_edit_internals()・rpc_sh_user_show_internals()・rpc_sh_user_str_edit_internals()・rpc_user_rename_internals()・winbindd_dual_pam_auth_samlogon().
00366 { 00367 prs_struct qbuf, rbuf; 00368 SAMR_Q_QUERY_USERINFO q; 00369 SAMR_R_QUERY_USERINFO r; 00370 NTSTATUS result = NT_STATUS_UNSUCCESSFUL; 00371 00372 DEBUG(10,("cli_samr_query_userinfo\n")); 00373 00374 ZERO_STRUCT(q); 00375 ZERO_STRUCT(r); 00376 00377 /* Marshall data and send request */ 00378 00379 init_samr_q_query_userinfo(&q, user_pol, switch_value); 00380 00381 CLI_DO_RPC(cli, mem_ctx, PI_SAMR, SAMR_QUERY_USERINFO, 00382 q, r, 00383 qbuf, rbuf, 00384 samr_io_q_query_userinfo, 00385 samr_io_r_query_userinfo, 00386 NT_STATUS_UNSUCCESSFUL); 00387 00388 /* Return output parameters */ 00389 00390 result = r.status; 00391 *ctr = r.ctr; 00392 00393 return result; 00394 }
NTSTATUS rpccli_samr_set_groupinfo | ( | struct rpc_pipe_client * | cli, | |
TALLOC_CTX * | mem_ctx, | |||
POLICY_HND * | group_pol, | |||
GROUP_INFO_CTR * | ctr | |||
) |
cli_samr.c の 398 行で定義されています。
参照先 cli・init_samr_q_set_groupinfo()・result・samr_io_q_set_groupinfo()・samr_io_r_set_groupinfo()・r_samr_set_group_info::status.
参照元 cac_SamRenameGroup()・cac_SamSetGroupInfo()・rpc_group_add_internals()・rpc_group_rename_internals().
00400 { 00401 prs_struct qbuf, rbuf; 00402 SAMR_Q_SET_GROUPINFO q; 00403 SAMR_R_SET_GROUPINFO r; 00404 NTSTATUS result = NT_STATUS_UNSUCCESSFUL; 00405 00406 DEBUG(10,("cli_samr_set_groupinfo\n")); 00407 00408 ZERO_STRUCT(q); 00409 ZERO_STRUCT(r); 00410 00411 /* Marshall data and send request */ 00412 00413 init_samr_q_set_groupinfo(&q, group_pol, ctr); 00414 00415 CLI_DO_RPC(cli, mem_ctx, PI_SAMR, SAMR_SET_GROUPINFO, 00416 q, r, 00417 qbuf, rbuf, 00418 samr_io_q_set_groupinfo, 00419 samr_io_r_set_groupinfo, 00420 NT_STATUS_UNSUCCESSFUL); 00421 00422 /* Return output parameters */ 00423 00424 result = r.status; 00425 00426 return result; 00427 }
NTSTATUS rpccli_samr_query_groupinfo | ( | struct rpc_pipe_client * | cli, | |
TALLOC_CTX * | mem_ctx, | |||
POLICY_HND * | group_pol, | |||
uint32 | info_level, | |||
GROUP_INFO_CTR ** | ctr | |||
) |
cli_samr.c の 431 行で定義されています。
参照先 cli・r_samr_query_groupinfo_info::ctr・init_samr_q_query_groupinfo()・result・samr_io_q_query_groupinfo()・samr_io_r_query_groupinfo()・r_samr_query_groupinfo_info::status.
参照元 cac_SamGetGroupInfo()・cmd_samr_query_group().
00434 { 00435 prs_struct qbuf, rbuf; 00436 SAMR_Q_QUERY_GROUPINFO q; 00437 SAMR_R_QUERY_GROUPINFO r; 00438 NTSTATUS result = NT_STATUS_UNSUCCESSFUL; 00439 00440 DEBUG(10,("cli_samr_query_groupinfo\n")); 00441 00442 ZERO_STRUCT(q); 00443 ZERO_STRUCT(r); 00444 00445 /* Marshall data and send request */ 00446 00447 init_samr_q_query_groupinfo(&q, group_pol, info_level); 00448 00449 CLI_DO_RPC(cli, mem_ctx, PI_SAMR, SAMR_QUERY_GROUPINFO, 00450 q, r, 00451 qbuf, rbuf, 00452 samr_io_q_query_groupinfo, 00453 samr_io_r_query_groupinfo, 00454 NT_STATUS_UNSUCCESSFUL); 00455 00456 *ctr = r.ctr; 00457 00458 /* Return output parameters */ 00459 00460 result = r.status; 00461 00462 return result; 00463 }
NTSTATUS rpccli_samr_query_usergroups | ( | struct rpc_pipe_client * | cli, | |
TALLOC_CTX * | mem_ctx, | |||
POLICY_HND * | user_pol, | |||
uint32 * | num_groups, | |||
DOM_GID ** | gid | |||
) |
cli_samr.c の 467 行で定義されています。
参照先 cli・r_samr_query_usergroup_info::gid・init_samr_q_query_usergroups()・r_samr_query_usergroup_info::num_entries・result・samr_io_q_query_usergroups()・samr_io_r_query_usergroups()・r_samr_query_usergroup_info::status.
参照元 cac_SamGetGroupsForUser()・cmd_samr_query_usergroups()・lookup_usergroups()・rpc_user_info_internals().
00472 { 00473 prs_struct qbuf, rbuf; 00474 SAMR_Q_QUERY_USERGROUPS q; 00475 SAMR_R_QUERY_USERGROUPS r; 00476 NTSTATUS result = NT_STATUS_UNSUCCESSFUL; 00477 00478 DEBUG(10,("cli_samr_query_usergroups\n")); 00479 00480 ZERO_STRUCT(q); 00481 ZERO_STRUCT(r); 00482 00483 /* Marshall data and send request */ 00484 00485 init_samr_q_query_usergroups(&q, user_pol); 00486 00487 CLI_DO_RPC(cli, mem_ctx, PI_SAMR, SAMR_QUERY_USERGROUPS, 00488 q, r, 00489 qbuf, rbuf, 00490 samr_io_q_query_usergroups, 00491 samr_io_r_query_usergroups, 00492 NT_STATUS_UNSUCCESSFUL); 00493 00494 /* Return output parameters */ 00495 00496 if (NT_STATUS_IS_OK(result = r.status)) { 00497 *num_groups = r.num_entries; 00498 *gid = r.gid; 00499 } 00500 00501 return result; 00502 }
NTSTATUS rpccli_samr_set_aliasinfo | ( | struct rpc_pipe_client * | cli, | |
TALLOC_CTX * | mem_ctx, | |||
POLICY_HND * | alias_pol, | |||
ALIAS_INFO_CTR * | ctr | |||
) |
cli_samr.c の 506 行で定義されています。
参照先 cli・init_samr_q_set_aliasinfo()・result・samr_io_q_set_aliasinfo()・samr_io_r_set_aliasinfo()・SAMR_R_SET_ALIASINFO::status.
参照元 cac_SamSetAliasInfo()・rpc_alias_add_internals().
00508 { 00509 prs_struct qbuf, rbuf; 00510 SAMR_Q_SET_ALIASINFO q; 00511 SAMR_R_SET_ALIASINFO r; 00512 NTSTATUS result = NT_STATUS_UNSUCCESSFUL; 00513 00514 DEBUG(10,("cli_samr_set_aliasinfo\n")); 00515 00516 ZERO_STRUCT(q); 00517 ZERO_STRUCT(r); 00518 00519 /* Marshall data and send request */ 00520 00521 init_samr_q_set_aliasinfo(&q, alias_pol, ctr); 00522 00523 CLI_DO_RPC(cli, mem_ctx, PI_SAMR, SAMR_SET_ALIASINFO, 00524 q, r, 00525 qbuf, rbuf, 00526 samr_io_q_set_aliasinfo, 00527 samr_io_r_set_aliasinfo, 00528 NT_STATUS_UNSUCCESSFUL); 00529 00530 /* Return output parameters */ 00531 00532 result = r.status; 00533 00534 return result; 00535 }
NTSTATUS rpccli_samr_query_useraliases | ( | struct rpc_pipe_client * | cli, | |
TALLOC_CTX * | mem_ctx, | |||
POLICY_HND * | dom_pol, | |||
uint32 | num_sids, | |||
DOM_SID2 * | sid, | |||
uint32 * | num_aliases, | |||
uint32 ** | als_rids | |||
) |
cli_samr.c の 539 行で定義されています。
参照先 cli・init_samr_q_query_useraliases()・r_samr_query_useraliases_info::num_entries・result・r_samr_query_useraliases_info::rid・samr_io_q_query_useraliases()・samr_io_r_query_useraliases()・r_samr_query_useraliases_info::status.
参照元 cmd_samr_query_useraliases()・msrpc_lookup_useraliases().
00544 { 00545 prs_struct qbuf, rbuf; 00546 SAMR_Q_QUERY_USERALIASES q; 00547 SAMR_R_QUERY_USERALIASES r; 00548 NTSTATUS result = NT_STATUS_UNSUCCESSFUL; 00549 int i; 00550 uint32 *sid_ptrs; 00551 00552 DEBUG(10,("cli_samr_query_useraliases\n")); 00553 00554 ZERO_STRUCT(q); 00555 ZERO_STRUCT(r); 00556 00557 if (num_sids) { 00558 sid_ptrs = TALLOC_ARRAY(mem_ctx, uint32, num_sids); 00559 if (sid_ptrs == NULL) 00560 return NT_STATUS_NO_MEMORY; 00561 } else { 00562 sid_ptrs = NULL; 00563 } 00564 00565 for (i=0; i<num_sids; i++) 00566 sid_ptrs[i] = 1; 00567 00568 /* Marshall data and send request */ 00569 00570 init_samr_q_query_useraliases(&q, dom_pol, num_sids, sid_ptrs, sid); 00571 00572 CLI_DO_RPC(cli, mem_ctx, PI_SAMR, SAMR_QUERY_USERALIASES, 00573 q, r, 00574 qbuf, rbuf, 00575 samr_io_q_query_useraliases, 00576 samr_io_r_query_useraliases, 00577 NT_STATUS_UNSUCCESSFUL); 00578 00579 /* Return output parameters */ 00580 00581 if (NT_STATUS_IS_OK(result = r.status)) { 00582 *num_aliases = r.num_entries; 00583 *als_rids = r.rid; 00584 } 00585 00586 return result; 00587 }
NTSTATUS rpccli_samr_query_groupmem | ( | struct rpc_pipe_client * | cli, | |
TALLOC_CTX * | mem_ctx, | |||
POLICY_HND * | group_pol, | |||
uint32 * | num_mem, | |||
uint32 ** | rid, | |||
uint32 ** | attr | |||
) |
cli_samr.c の 591 行で定義されています。
参照先 r_samr_query_groupmem_info::attr・cli・init_samr_q_query_groupmem()・r_samr_query_groupmem_info::num_entries・result・r_samr_query_groupmem_info::rid・samr_io_q_query_groupmem()・samr_io_r_query_groupmem()・r_samr_query_groupmem_info::status.
参照元 cac_SamClearGroupMembers()・cac_SamGetGroupMembers()・cmd_samr_query_groupmem()・lookup_groupmem()・rpc_group_delete_internals()・rpc_list_group_members().
00595 { 00596 prs_struct qbuf, rbuf; 00597 SAMR_Q_QUERY_GROUPMEM q; 00598 SAMR_R_QUERY_GROUPMEM r; 00599 NTSTATUS result = NT_STATUS_UNSUCCESSFUL; 00600 00601 DEBUG(10,("cli_samr_query_groupmem\n")); 00602 00603 ZERO_STRUCT(q); 00604 ZERO_STRUCT(r); 00605 00606 /* Marshall data and send request */ 00607 00608 init_samr_q_query_groupmem(&q, group_pol); 00609 00610 CLI_DO_RPC(cli, mem_ctx, PI_SAMR, SAMR_QUERY_GROUPMEM, 00611 q, r, 00612 qbuf, rbuf, 00613 samr_io_q_query_groupmem, 00614 samr_io_r_query_groupmem, 00615 NT_STATUS_UNSUCCESSFUL); 00616 00617 /* Return output parameters */ 00618 00619 if (NT_STATUS_IS_OK(result = r.status)) { 00620 *num_mem = r.num_entries; 00621 *rid = r.rid; 00622 *attr = r.attr; 00623 } 00624 00625 return result; 00626 }
NTSTATUS rpccli_samr_enum_dom_users | ( | struct rpc_pipe_client * | cli, | |
TALLOC_CTX * | mem_ctx, | |||
POLICY_HND * | pol, | |||
uint32 * | start_idx, | |||
uint32 | acb_mask, | |||
uint32 | size, | |||
char *** | dom_users, | |||
uint32 ** | rids, | |||
uint32 * | num_dom_users | |||
) |
Enumerate domain users
cli | client state structure | |
mem_ctx | talloc context | |
pol | opened domain policy handle | |
start_idx | starting index of enumeration, returns context for next enumeration | |
acb_mask | account control bit mask (to enumerate some particular kind of accounts) | |
size | max acceptable size of response | |
dom_users | returned array of domain user names | |
rids | returned array of domain user RIDs | |
num_dom_users | numer returned entries |
cli_samr.c の 646 行で定義されています。
参照先 cli・init_samr_q_enum_dom_users()・r_samr_enum_dom_users_info::next_idx・r_samr_enum_dom_users_info::num_entries2・pol・result・samr_entry_info::rid・r_samr_enum_dom_users_info::sam・samr_io_q_enum_dom_users()・samr_io_r_enum_dom_users()・r_samr_enum_dom_users_info::status・talloc_strdup()・r_samr_enum_dom_users_info::uni_acct_name・unistr2_to_ascii().
参照元 cac_SamEnumUsers()・cmd_samr_enum_dom_users()・rpc_trustdom_list().
00650 { 00651 prs_struct qbuf; 00652 prs_struct rbuf; 00653 SAMR_Q_ENUM_DOM_USERS q; 00654 SAMR_R_ENUM_DOM_USERS r; 00655 NTSTATUS result = NT_STATUS_UNSUCCESSFUL; 00656 int i; 00657 00658 DEBUG(10,("cli_samr_enum_dom_users starting at index %u\n", (unsigned int)*start_idx)); 00659 00660 ZERO_STRUCT(q); 00661 ZERO_STRUCT(r); 00662 00663 /* always init this */ 00664 *num_dom_users = 0; 00665 00666 /* Fill query structure with parameters */ 00667 00668 init_samr_q_enum_dom_users(&q, pol, *start_idx, acb_mask, size); 00669 00670 CLI_DO_RPC(cli, mem_ctx, PI_SAMR, SAMR_ENUM_DOM_USERS, 00671 q, r, 00672 qbuf, rbuf, 00673 samr_io_q_enum_dom_users, 00674 samr_io_r_enum_dom_users, 00675 NT_STATUS_UNSUCCESSFUL); 00676 00677 result = r.status; 00678 00679 if (!NT_STATUS_IS_OK(result) && 00680 NT_STATUS_V(result) != NT_STATUS_V(STATUS_MORE_ENTRIES)) 00681 goto done; 00682 00683 *start_idx = r.next_idx; 00684 *num_dom_users = r.num_entries2; 00685 00686 if (r.num_entries2) { 00687 /* allocate memory needed to return received data */ 00688 *rids = TALLOC_ARRAY(mem_ctx, uint32, r.num_entries2); 00689 if (!*rids) { 00690 DEBUG(0, ("Error in cli_samr_enum_dom_users(): out of memory\n")); 00691 return NT_STATUS_NO_MEMORY; 00692 } 00693 00694 *dom_users = TALLOC_ARRAY(mem_ctx, char*, r.num_entries2); 00695 if (!*dom_users) { 00696 DEBUG(0, ("Error in cli_samr_enum_dom_users(): out of memory\n")); 00697 return NT_STATUS_NO_MEMORY; 00698 } 00699 00700 /* fill output buffers with rpc response */ 00701 for (i = 0; i < r.num_entries2; i++) { 00702 fstring conv_buf; 00703 00704 (*rids)[i] = r.sam[i].rid; 00705 unistr2_to_ascii(conv_buf, &(r.uni_acct_name[i]), sizeof(conv_buf) - 1); 00706 (*dom_users)[i] = talloc_strdup(mem_ctx, conv_buf); 00707 } 00708 } 00709 00710 done: 00711 return result; 00712 }
NTSTATUS rpccli_samr_enum_dom_groups | ( | struct rpc_pipe_client * | cli, | |
TALLOC_CTX * | mem_ctx, | |||
POLICY_HND * | pol, | |||
uint32 * | start_idx, | |||
uint32 | size, | |||
struct acct_info ** | dom_groups, | |||
uint32 * | num_dom_groups | |||
) |
cli_samr.c の 716 行で定義されています。
参照先 UNIHDR::buffer・cli・samr_entry_info::hdr_name・init_samr_q_enum_dom_groups()・r_samr_enum_dom_groups_info::next_idx・r_samr_enum_dom_groups_info::num_entries2・pol・result・samr_entry_info::rid・r_samr_enum_dom_groups_info::sam・samr_io_q_enum_dom_groups()・samr_io_r_enum_dom_groups()・r_samr_enum_dom_groups_info::status・r_samr_enum_dom_groups_info::uni_grp_name・unistr2_to_ascii().
参照元 cac_SamEnumGroups()・cmd_samr_enum_dom_groups()・enum_dom_groups()・samr_enum_dom_groups().
00721 { 00722 prs_struct qbuf, rbuf; 00723 SAMR_Q_ENUM_DOM_GROUPS q; 00724 SAMR_R_ENUM_DOM_GROUPS r; 00725 NTSTATUS result = NT_STATUS_UNSUCCESSFUL; 00726 uint32 name_idx, i; 00727 00728 DEBUG(10,("cli_samr_enum_dom_groups starting at index %u\n", (unsigned int)*start_idx)); 00729 00730 ZERO_STRUCT(q); 00731 ZERO_STRUCT(r); 00732 00733 /* Marshall data and send request */ 00734 00735 init_samr_q_enum_dom_groups(&q, pol, *start_idx, size); 00736 00737 CLI_DO_RPC(cli, mem_ctx, PI_SAMR, SAMR_ENUM_DOM_GROUPS, 00738 q, r, 00739 qbuf, rbuf, 00740 samr_io_q_enum_dom_groups, 00741 samr_io_r_enum_dom_groups, 00742 NT_STATUS_UNSUCCESSFUL); 00743 00744 /* Return output parameters */ 00745 00746 result = r.status; 00747 00748 if (!NT_STATUS_IS_OK(result) && 00749 NT_STATUS_V(result) != NT_STATUS_V(STATUS_MORE_ENTRIES)) 00750 goto done; 00751 00752 *num_dom_groups = r.num_entries2; 00753 00754 if (*num_dom_groups == 0) 00755 goto done; 00756 00757 if (!((*dom_groups) = TALLOC_ARRAY(mem_ctx, struct acct_info, *num_dom_groups))) { 00758 result = NT_STATUS_NO_MEMORY; 00759 goto done; 00760 } 00761 00762 memset(*dom_groups, 0, sizeof(struct acct_info) * (*num_dom_groups)); 00763 00764 name_idx = 0; 00765 00766 for (i = 0; i < *num_dom_groups; i++) { 00767 00768 (*dom_groups)[i].rid = r.sam[i].rid; 00769 00770 if (r.sam[i].hdr_name.buffer) { 00771 unistr2_to_ascii((*dom_groups)[i].acct_name, 00772 &r.uni_grp_name[name_idx], 00773 sizeof(fstring) - 1); 00774 name_idx++; 00775 } 00776 00777 *start_idx = r.next_idx; 00778 } 00779 00780 done: 00781 return result; 00782 }
NTSTATUS rpccli_samr_enum_als_groups | ( | struct rpc_pipe_client * | cli, | |
TALLOC_CTX * | mem_ctx, | |||
POLICY_HND * | pol, | |||
uint32 * | start_idx, | |||
uint32 | size, | |||
struct acct_info ** | dom_aliases, | |||
uint32 * | num_dom_aliases | |||
) |
cli_samr.c の 786 行で定義されています。
参照先 UNIHDR::buffer・cli・samr_entry_info::hdr_name・init_samr_q_enum_dom_aliases()・r_samr_enum_dom_aliases_info::next_idx・r_samr_enum_dom_aliases_info::num_entries2・pol・result・samr_entry_info::rid・r_samr_enum_dom_aliases_info::sam・samr_io_q_enum_dom_aliases()・samr_io_r_enum_dom_aliases()・r_samr_enum_dom_aliases_info::status・r_samr_enum_dom_aliases_info::uni_grp_name・unistr2_to_ascii().
参照元 cac_SamEnumAliases()・cmd_samr_enum_als_groups()・enum_local_groups()・rpc_fetch_domain_aliases()・rpc_group_list_internals().
00791 { 00792 prs_struct qbuf, rbuf; 00793 SAMR_Q_ENUM_DOM_ALIASES q; 00794 SAMR_R_ENUM_DOM_ALIASES r; 00795 NTSTATUS result = NT_STATUS_UNSUCCESSFUL; 00796 uint32 name_idx, i; 00797 00798 DEBUG(10,("cli_samr_enum_als_groups starting at index %u\n", (unsigned int)*start_idx)); 00799 00800 ZERO_STRUCT(q); 00801 ZERO_STRUCT(r); 00802 00803 /* Marshall data and send request */ 00804 00805 init_samr_q_enum_dom_aliases(&q, pol, *start_idx, size); 00806 00807 CLI_DO_RPC(cli, mem_ctx, PI_SAMR, SAMR_ENUM_DOM_ALIASES, 00808 q, r, 00809 qbuf, rbuf, 00810 samr_io_q_enum_dom_aliases, 00811 samr_io_r_enum_dom_aliases, 00812 NT_STATUS_UNSUCCESSFUL); 00813 00814 /* Return output parameters */ 00815 00816 result = r.status; 00817 00818 if (!NT_STATUS_IS_OK(result) && 00819 NT_STATUS_V(result) != NT_STATUS_V(STATUS_MORE_ENTRIES)) { 00820 goto done; 00821 } 00822 00823 *num_dom_aliases = r.num_entries2; 00824 00825 if (*num_dom_aliases == 0) 00826 goto done; 00827 00828 if (!((*dom_aliases) = TALLOC_ARRAY(mem_ctx, struct acct_info, *num_dom_aliases))) { 00829 result = NT_STATUS_NO_MEMORY; 00830 goto done; 00831 } 00832 00833 memset(*dom_aliases, 0, sizeof(struct acct_info) * *num_dom_aliases); 00834 00835 name_idx = 0; 00836 00837 for (i = 0; i < *num_dom_aliases; i++) { 00838 00839 (*dom_aliases)[i].rid = r.sam[i].rid; 00840 00841 if (r.sam[i].hdr_name.buffer) { 00842 unistr2_to_ascii((*dom_aliases)[i].acct_name, 00843 &r.uni_grp_name[name_idx], 00844 sizeof(fstring) - 1); 00845 name_idx++; 00846 } 00847 00848 *start_idx = r.next_idx; 00849 } 00850 00851 done: 00852 return result; 00853 }
NTSTATUS rpccli_samr_query_aliasmem | ( | struct rpc_pipe_client * | cli, | |
TALLOC_CTX * | mem_ctx, | |||
POLICY_HND * | alias_pol, | |||
uint32 * | num_mem, | |||
DOM_SID ** | sids | |||
) |
cli_samr.c の 857 行で定義されています。
参照先 cli・init_samr_q_query_aliasmem()・r_samr_query_aliasmem_info::num_sids・result・samr_io_q_query_aliasmem()・samr_io_r_query_aliasmem()・DOM_SID2::sid・r_samr_query_aliasmem_info::sid・r_samr_query_aliasmem_info::status.
参照元 cac_SamClearAliasMembers()・cac_SamGetAliasMembers()・cmd_samr_query_aliasmem()・rpc_fetch_domain_aliases()・rpc_list_alias_members().
00861 { 00862 prs_struct qbuf, rbuf; 00863 SAMR_Q_QUERY_ALIASMEM q; 00864 SAMR_R_QUERY_ALIASMEM r; 00865 NTSTATUS result = NT_STATUS_UNSUCCESSFUL; 00866 uint32 i; 00867 00868 DEBUG(10,("cli_samr_query_aliasmem\n")); 00869 00870 ZERO_STRUCT(q); 00871 ZERO_STRUCT(r); 00872 00873 /* Marshall data and send request */ 00874 00875 init_samr_q_query_aliasmem(&q, alias_pol); 00876 00877 CLI_DO_RPC(cli, mem_ctx, PI_SAMR, SAMR_QUERY_ALIASMEM, 00878 q, r, 00879 qbuf, rbuf, 00880 samr_io_q_query_aliasmem, 00881 samr_io_r_query_aliasmem, 00882 NT_STATUS_UNSUCCESSFUL); 00883 00884 /* Return output parameters */ 00885 00886 if (!NT_STATUS_IS_OK(result = r.status)) { 00887 goto done; 00888 } 00889 00890 *num_mem = r.num_sids; 00891 00892 if (*num_mem == 0) { 00893 *sids = NULL; 00894 result = NT_STATUS_OK; 00895 goto done; 00896 } 00897 00898 if (!(*sids = TALLOC_ARRAY(mem_ctx, DOM_SID, *num_mem))) { 00899 result = NT_STATUS_UNSUCCESSFUL; 00900 goto done; 00901 } 00902 00903 for (i = 0; i < *num_mem; i++) { 00904 (*sids)[i] = r.sid[i].sid; 00905 } 00906 00907 done: 00908 return result; 00909 }
NTSTATUS rpccli_samr_open_alias | ( | struct rpc_pipe_client * | cli, | |
TALLOC_CTX * | mem_ctx, | |||
POLICY_HND * | domain_pol, | |||
uint32 | access_mask, | |||
uint32 | alias_rid, | |||
POLICY_HND * | alias_pol | |||
) |
cli_samr.c の 913 行で定義されています。
参照先 cli・init_samr_q_open_alias()・r_samr_open_alias_info::pol・result・samr_io_q_open_alias()・samr_io_r_open_alias()・r_samr_open_alias_info::status.
参照元 cac_SamOpenAlias()・cmd_samr_delete_alias()・cmd_samr_query_aliasmem()・rpc_add_aliasmem()・rpc_del_aliasmem()・rpc_fetch_domain_aliases()・rpc_group_delete_internals()・rpc_group_list_internals()・rpc_list_alias_members().
00917 { 00918 prs_struct qbuf, rbuf; 00919 SAMR_Q_OPEN_ALIAS q; 00920 SAMR_R_OPEN_ALIAS r; 00921 NTSTATUS result; 00922 00923 DEBUG(10,("cli_samr_open_alias with rid 0x%x\n", alias_rid)); 00924 00925 ZERO_STRUCT(q); 00926 ZERO_STRUCT(r); 00927 00928 /* Marshall data and send request */ 00929 00930 init_samr_q_open_alias(&q, domain_pol, access_mask, alias_rid); 00931 00932 CLI_DO_RPC(cli, mem_ctx, PI_SAMR, SAMR_OPEN_ALIAS, 00933 q, r, 00934 qbuf, rbuf, 00935 samr_io_q_open_alias, 00936 samr_io_r_open_alias, 00937 NT_STATUS_UNSUCCESSFUL); 00938 00939 /* Return output parameters */ 00940 00941 if (NT_STATUS_IS_OK(result = r.status)) { 00942 *alias_pol = r.pol; 00943 #ifdef __INSURE__ 00944 alias_pol->marker = malloc(1); 00945 #endif 00946 } 00947 00948 return result; 00949 }
NTSTATUS rpccli_samr_create_dom_alias | ( | struct rpc_pipe_client * | cli, | |
TALLOC_CTX * | mem_ctx, | |||
POLICY_HND * | domain_pol, | |||
const char * | name, | |||
POLICY_HND * | alias_pol | |||
) |
cli_samr.c の 953 行で定義されています。
参照先 r_samr_create_dom_alias_info::alias_pol・cli・init_samr_q_create_dom_alias()・result・samr_io_q_create_dom_alias()・samr_io_r_create_dom_alias()・r_samr_create_dom_alias_info::status.
参照元 cac_SamCreateAlias()・cmd_samr_create_dom_alias()・rpc_alias_add_internals().
00956 { 00957 prs_struct qbuf, rbuf; 00958 SAMR_Q_CREATE_DOM_ALIAS q; 00959 SAMR_R_CREATE_DOM_ALIAS r; 00960 NTSTATUS result; 00961 00962 DEBUG(10,("cli_samr_create_dom_alias named %s\n", name)); 00963 00964 ZERO_STRUCT(q); 00965 ZERO_STRUCT(r); 00966 00967 /* Marshall data and send request */ 00968 00969 init_samr_q_create_dom_alias(&q, domain_pol, name); 00970 00971 CLI_DO_RPC(cli, mem_ctx, PI_SAMR, SAMR_CREATE_DOM_ALIAS, 00972 q, r, 00973 qbuf, rbuf, 00974 samr_io_q_create_dom_alias, 00975 samr_io_r_create_dom_alias, 00976 NT_STATUS_UNSUCCESSFUL); 00977 00978 /* Return output parameters */ 00979 00980 if (NT_STATUS_IS_OK(result = r.status)) { 00981 *alias_pol = r.alias_pol; 00982 } 00983 00984 return result; 00985 }
NTSTATUS rpccli_samr_add_aliasmem | ( | struct rpc_pipe_client * | cli, | |
TALLOC_CTX * | mem_ctx, | |||
POLICY_HND * | alias_pol, | |||
DOM_SID * | member | |||
) |
cli_samr.c の 989 行で定義されています。
参照先 cli・init_samr_q_add_aliasmem()・result・samr_io_q_add_aliasmem()・samr_io_r_add_aliasmem()・r_samr_add_alias_mem_info::status.
参照元 cac_SamAddAliasMember()・cac_SamClearAliasMembers()・cac_SamSetAliasMembers()・rpc_add_aliasmem().
00991 { 00992 prs_struct qbuf, rbuf; 00993 SAMR_Q_ADD_ALIASMEM q; 00994 SAMR_R_ADD_ALIASMEM r; 00995 NTSTATUS result; 00996 00997 DEBUG(10,("cli_samr_add_aliasmem")); 00998 00999 ZERO_STRUCT(q); 01000 ZERO_STRUCT(r); 01001 01002 /* Marshall data and send request */ 01003 01004 init_samr_q_add_aliasmem(&q, alias_pol, member); 01005 01006 CLI_DO_RPC(cli, mem_ctx, PI_SAMR, SAMR_ADD_ALIASMEM, 01007 q, r, 01008 qbuf, rbuf, 01009 samr_io_q_add_aliasmem, 01010 samr_io_r_add_aliasmem, 01011 NT_STATUS_UNSUCCESSFUL); 01012 01013 result = r.status; 01014 01015 return result; 01016 }
NTSTATUS rpccli_samr_del_aliasmem | ( | struct rpc_pipe_client * | cli, | |
TALLOC_CTX * | mem_ctx, | |||
POLICY_HND * | alias_pol, | |||
DOM_SID * | member | |||
) |
cli_samr.c の 1020 行で定義されています。
参照先 cli・init_samr_q_del_aliasmem()・result・samr_io_q_del_aliasmem()・samr_io_r_del_aliasmem()・r_samr_del_alias_mem_info::status.
参照元 cac_SamClearAliasMembers()・cac_SamRemoveAliasMember()・rpc_del_aliasmem().
01022 { 01023 prs_struct qbuf, rbuf; 01024 SAMR_Q_DEL_ALIASMEM q; 01025 SAMR_R_DEL_ALIASMEM r; 01026 NTSTATUS result; 01027 01028 DEBUG(10,("cli_samr_del_aliasmem")); 01029 01030 ZERO_STRUCT(q); 01031 ZERO_STRUCT(r); 01032 01033 /* Marshall data and send request */ 01034 01035 init_samr_q_del_aliasmem(&q, alias_pol, member); 01036 01037 CLI_DO_RPC(cli, mem_ctx, PI_SAMR, SAMR_DEL_ALIASMEM, 01038 q, r, 01039 qbuf, rbuf, 01040 samr_io_q_del_aliasmem, 01041 samr_io_r_del_aliasmem, 01042 NT_STATUS_UNSUCCESSFUL); 01043 01044 result = r.status; 01045 01046 return result; 01047 }
NTSTATUS rpccli_samr_query_alias_info | ( | struct rpc_pipe_client * | cli, | |
TALLOC_CTX * | mem_ctx, | |||
POLICY_HND * | alias_pol, | |||
uint16 | switch_value, | |||
ALIAS_INFO_CTR * | ctr | |||
) |
cli_samr.c の 1051 行で定義されています。
参照先 cli・SAMR_R_QUERY_ALIASINFO::ctr・init_samr_q_query_aliasinfo()・result・samr_io_q_query_aliasinfo()・samr_io_r_query_aliasinfo()・SAMR_R_QUERY_ALIASINFO::status.
参照元 cac_SamGetAliasInfo()・rpc_group_list_internals().
01054 { 01055 prs_struct qbuf, rbuf; 01056 SAMR_Q_QUERY_ALIASINFO q; 01057 SAMR_R_QUERY_ALIASINFO r; 01058 NTSTATUS result = NT_STATUS_UNSUCCESSFUL; 01059 01060 DEBUG(10,("cli_samr_query_alias_info\n")); 01061 01062 ZERO_STRUCT(q); 01063 ZERO_STRUCT(r); 01064 01065 /* Marshall data and send request */ 01066 01067 init_samr_q_query_aliasinfo(&q, alias_pol, switch_value); 01068 01069 CLI_DO_RPC(cli, mem_ctx, PI_SAMR, SAMR_QUERY_ALIASINFO, 01070 q, r, 01071 qbuf, rbuf, 01072 samr_io_q_query_aliasinfo, 01073 samr_io_r_query_aliasinfo, 01074 NT_STATUS_UNSUCCESSFUL); 01075 01076 /* Return output parameters */ 01077 01078 if (!NT_STATUS_IS_OK(result = r.status)) { 01079 goto done; 01080 } 01081 01082 *ctr = *r.ctr; 01083 01084 done: 01085 01086 return result; 01087 }
NTSTATUS rpccli_samr_query_dom_info | ( | struct rpc_pipe_client * | cli, | |
TALLOC_CTX * | mem_ctx, | |||
POLICY_HND * | domain_pol, | |||
uint16 | switch_value, | |||
SAM_UNK_CTR * | ctr | |||
) |
cli_samr.c の 1091 行で定義されています。
参照先 cli・r_samr_query_domain_info::ctr・init_samr_q_query_domain_info()・result・samr_io_q_query_domain_info()・samr_io_r_query_domain_info()・r_samr_query_domain_info::status.
参照元 cac_SamGetDomainInfo()・cac_SamGetDomainInfoCtr()・cmd_samr_query_dominfo()・msrpc_lockout_policy()・msrpc_password_policy()・rpc_info_internals()・rpc_sh_acct_do()・sequence_number().
01096 { 01097 prs_struct qbuf, rbuf; 01098 SAMR_Q_QUERY_DOMAIN_INFO q; 01099 SAMR_R_QUERY_DOMAIN_INFO r; 01100 NTSTATUS result = NT_STATUS_UNSUCCESSFUL; 01101 01102 DEBUG(10,("cli_samr_query_dom_info\n")); 01103 01104 ZERO_STRUCT(q); 01105 ZERO_STRUCT(r); 01106 01107 /* Marshall data and send request */ 01108 01109 init_samr_q_query_domain_info(&q, domain_pol, switch_value); 01110 01111 r.ctr = ctr; 01112 01113 CLI_DO_RPC(cli, mem_ctx, PI_SAMR, SAMR_QUERY_DOMAIN_INFO, 01114 q, r, 01115 qbuf, rbuf, 01116 samr_io_q_query_domain_info, 01117 samr_io_r_query_domain_info, 01118 NT_STATUS_UNSUCCESSFUL); 01119 01120 /* Return output parameters */ 01121 01122 if (!NT_STATUS_IS_OK(result = r.status)) { 01123 goto done; 01124 } 01125 01126 done: 01127 01128 return result; 01129 }
NTSTATUS rpccli_samr_query_dom_info2 | ( | struct rpc_pipe_client * | cli, | |
TALLOC_CTX * | mem_ctx, | |||
POLICY_HND * | domain_pol, | |||
uint16 | switch_value, | |||
SAM_UNK_CTR * | ctr | |||
) |
cli_samr.c の 1133 行で定義されています。
参照先 cli・r_samr_query_domain_info2::ctr・init_samr_q_query_domain_info2()・result・samr_io_q_query_domain_info2()・samr_io_r_query_domain_info2()・r_samr_query_domain_info2::status.
01138 { 01139 prs_struct qbuf, rbuf; 01140 SAMR_Q_QUERY_DOMAIN_INFO2 q; 01141 SAMR_R_QUERY_DOMAIN_INFO2 r; 01142 NTSTATUS result = NT_STATUS_UNSUCCESSFUL; 01143 01144 DEBUG(10,("cli_samr_query_dom_info2\n")); 01145 01146 ZERO_STRUCT(q); 01147 ZERO_STRUCT(r); 01148 01149 /* Marshall data and send request */ 01150 01151 init_samr_q_query_domain_info2(&q, domain_pol, switch_value); 01152 01153 r.ctr = ctr; 01154 01155 CLI_DO_RPC(cli, mem_ctx, PI_SAMR, SAMR_QUERY_DOMAIN_INFO2, 01156 q, r, 01157 qbuf, rbuf, 01158 samr_io_q_query_domain_info2, 01159 samr_io_r_query_domain_info2, 01160 NT_STATUS_UNSUCCESSFUL); 01161 01162 /* Return output parameters */ 01163 01164 if (!NT_STATUS_IS_OK(result = r.status)) { 01165 goto done; 01166 } 01167 01168 done: 01169 01170 return result; 01171 }
NTSTATUS rpccli_samr_set_domain_info | ( | struct rpc_pipe_client * | cli, | |
TALLOC_CTX * | mem_ctx, | |||
POLICY_HND * | domain_pol, | |||
uint16 | switch_value, | |||
SAM_UNK_CTR * | ctr | |||
) |
cli_samr.c の 1175 行で定義されています。
参照先 cli・init_samr_q_set_domain_info()・result・samr_io_q_set_domain_info()・samr_io_r_set_domain_info()・r_samr_set_domain_info::status.
参照元 rpc_sh_acct_do().
01180 { 01181 prs_struct qbuf, rbuf; 01182 SAMR_Q_SET_DOMAIN_INFO q; 01183 SAMR_R_SET_DOMAIN_INFO r; 01184 NTSTATUS result = NT_STATUS_UNSUCCESSFUL; 01185 01186 DEBUG(10,("cli_samr_set_domain_info\n")); 01187 01188 ZERO_STRUCT(q); 01189 ZERO_STRUCT(r); 01190 01191 /* Marshall data and send request */ 01192 01193 init_samr_q_set_domain_info(&q, domain_pol, switch_value, ctr); 01194 01195 CLI_DO_RPC(cli, mem_ctx, PI_SAMR, SAMR_SET_DOMAIN_INFO, 01196 q, r, 01197 qbuf, rbuf, 01198 samr_io_q_set_domain_info, 01199 samr_io_r_set_domain_info, 01200 NT_STATUS_UNSUCCESSFUL); 01201 01202 /* Return output parameters */ 01203 01204 if (!NT_STATUS_IS_OK(result = r.status)) { 01205 goto done; 01206 } 01207 01208 done: 01209 01210 return result; 01211 }
NTSTATUS rpccli_samr_chgpasswd_user | ( | struct rpc_pipe_client * | cli, | |
TALLOC_CTX * | mem_ctx, | |||
const char * | username, | |||
const char * | newpassword, | |||
const char * | oldpassword | |||
) |
cli_samr.c の 1215 行で定義されています。
参照先 cli・cli_state::desthost・E_deshash()・E_md4hash()・E_old_pw_hash()・encode_pw_buffer()・init_samr_q_chgpasswd_user()・result・SamOEMhash()・samr_io_q_chgpasswd_user()・samr_io_r_chgpasswd_user()・r_samr_chgpasswd_user_info::status・talloc_asprintf().
参照元 cac_SamUserChangePasswd()・cmd_samr_chgpasswd2()・remote_password_change()・winbindd_dual_pam_chauthtok().
01220 { 01221 prs_struct qbuf, rbuf; 01222 SAMR_Q_CHGPASSWD_USER q; 01223 SAMR_R_CHGPASSWD_USER r; 01224 NTSTATUS result = NT_STATUS_UNSUCCESSFUL; 01225 01226 uchar new_nt_password[516]; 01227 uchar new_lm_password[516]; 01228 uchar old_nt_hash[16]; 01229 uchar old_lanman_hash[16]; 01230 uchar old_nt_hash_enc[16]; 01231 uchar old_lanman_hash_enc[16]; 01232 01233 uchar new_nt_hash[16]; 01234 uchar new_lanman_hash[16]; 01235 01236 char *srv_name_slash = talloc_asprintf(mem_ctx, "\\\\%s", cli->cli->desthost); 01237 01238 DEBUG(10,("rpccli_samr_chgpasswd_user\n")); 01239 01240 ZERO_STRUCT(q); 01241 ZERO_STRUCT(r); 01242 01243 /* Calculate the MD4 hash (NT compatible) of the password */ 01244 E_md4hash(oldpassword, old_nt_hash); 01245 E_md4hash(newpassword, new_nt_hash); 01246 01247 if (lp_client_lanman_auth() 01248 && E_deshash(newpassword, new_lanman_hash) 01249 && E_deshash(oldpassword, old_lanman_hash)) { 01250 /* E_deshash returns false for 'long' passwords (> 14 01251 DOS chars). This allows us to match Win2k, which 01252 does not store a LM hash for these passwords (which 01253 would reduce the effective password length to 14) */ 01254 01255 encode_pw_buffer(new_lm_password, newpassword, STR_UNICODE); 01256 01257 SamOEMhash( new_lm_password, old_nt_hash, 516); 01258 E_old_pw_hash( new_nt_hash, old_lanman_hash, old_lanman_hash_enc); 01259 } else { 01260 ZERO_STRUCT(new_lm_password); 01261 ZERO_STRUCT(old_lanman_hash_enc); 01262 } 01263 01264 encode_pw_buffer(new_nt_password, newpassword, STR_UNICODE); 01265 01266 SamOEMhash( new_nt_password, old_nt_hash, 516); 01267 E_old_pw_hash( new_nt_hash, old_nt_hash, old_nt_hash_enc); 01268 01269 /* Marshall data and send request */ 01270 01271 init_samr_q_chgpasswd_user(&q, srv_name_slash, username, 01272 new_nt_password, 01273 old_nt_hash_enc, 01274 new_lm_password, 01275 old_lanman_hash_enc); 01276 01277 CLI_DO_RPC(cli, mem_ctx, PI_SAMR, SAMR_CHGPASSWD_USER, 01278 q, r, 01279 qbuf, rbuf, 01280 samr_io_q_chgpasswd_user, 01281 samr_io_r_chgpasswd_user, 01282 NT_STATUS_UNSUCCESSFUL); 01283 01284 /* Return output parameters */ 01285 01286 if (!NT_STATUS_IS_OK(result = r.status)) { 01287 goto done; 01288 } 01289 01290 done: 01291 01292 return result; 01293 }
NTSTATUS rpccli_samr_chng_pswd_auth_crap | ( | struct rpc_pipe_client * | cli, | |
TALLOC_CTX * | mem_ctx, | |||
const char * | username, | |||
DATA_BLOB | new_nt_password, | |||
DATA_BLOB | old_nt_hash_enc, | |||
DATA_BLOB | new_lm_password, | |||
DATA_BLOB | old_lm_hash_enc | |||
) |
cli_samr.c の 1297 行で定義されています。
参照先 cli・data_blob_::data・cli_state::desthost・init_samr_q_chgpasswd_user()・result・samr_io_q_chgpasswd_user()・samr_io_r_chgpasswd_user()・r_samr_chgpasswd_user_info::status・talloc_asprintf().
参照元 winbindd_dual_pam_chng_pswd_auth_crap().
01304 { 01305 prs_struct qbuf, rbuf; 01306 SAMR_Q_CHGPASSWD_USER q; 01307 SAMR_R_CHGPASSWD_USER r; 01308 NTSTATUS result = NT_STATUS_UNSUCCESSFUL; 01309 01310 char *srv_name_slash = talloc_asprintf(mem_ctx, "\\\\%s", cli->cli->desthost); 01311 01312 DEBUG(10,("rpccli_samr_chng_pswd_auth_crap\n")); 01313 01314 ZERO_STRUCT(q); 01315 ZERO_STRUCT(r); 01316 01317 /* Marshall data and send request */ 01318 01319 init_samr_q_chgpasswd_user(&q, srv_name_slash, username, 01320 new_nt_password.data, 01321 old_nt_hash_enc.data, 01322 new_lm_password.data, 01323 old_lm_hash_enc.data); 01324 01325 CLI_DO_RPC(cli, mem_ctx, PI_SAMR, SAMR_CHGPASSWD_USER, 01326 q, r, 01327 qbuf, rbuf, 01328 samr_io_q_chgpasswd_user, 01329 samr_io_r_chgpasswd_user, 01330 NT_STATUS_UNSUCCESSFUL); 01331 01332 /* Return output parameters */ 01333 01334 if (!NT_STATUS_IS_OK(result = r.status)) { 01335 goto done; 01336 } 01337 01338 done: 01339 01340 return result; 01341 }
NTSTATUS rpccli_samr_chgpasswd3 | ( | struct rpc_pipe_client * | cli, | |
TALLOC_CTX * | mem_ctx, | |||
const char * | username, | |||
const char * | newpassword, | |||
const char * | oldpassword, | |||
SAM_UNK_INFO_1 * | info, | |||
SAMR_CHANGE_REJECT * | reject | |||
) |
cli_samr.c の 1346 行で定義されています。
参照先 cli・cli_state::desthost・E_deshash()・E_md4hash()・E_old_pw_hash()・encode_pw_buffer()・r_samr_chgpasswd_user3::info・init_samr_q_chgpasswd_user3()・r_samr_chgpasswd_user3::reject・SamOEMhash()・samr_io_q_chgpasswd_user3()・samr_io_r_chgpasswd_user3()・r_samr_chgpasswd_user3::status・talloc_asprintf().
参照元 cmd_samr_chgpasswd3()・winbindd_dual_pam_chauthtok().
01353 { 01354 prs_struct qbuf, rbuf; 01355 SAMR_Q_CHGPASSWD_USER3 q; 01356 SAMR_R_CHGPASSWD_USER3 r; 01357 01358 uchar new_nt_password[516]; 01359 uchar new_lm_password[516]; 01360 uchar old_nt_hash[16]; 01361 uchar old_lanman_hash[16]; 01362 uchar old_nt_hash_enc[16]; 01363 uchar old_lanman_hash_enc[16]; 01364 01365 uchar new_nt_hash[16]; 01366 uchar new_lanman_hash[16]; 01367 01368 char *srv_name_slash = talloc_asprintf(mem_ctx, "\\\\%s", cli->cli->desthost); 01369 01370 DEBUG(10,("rpccli_samr_chgpasswd_user3\n")); 01371 01372 ZERO_STRUCT(q); 01373 ZERO_STRUCT(r); 01374 01375 /* Calculate the MD4 hash (NT compatible) of the password */ 01376 E_md4hash(oldpassword, old_nt_hash); 01377 E_md4hash(newpassword, new_nt_hash); 01378 01379 if (lp_client_lanman_auth() 01380 && E_deshash(newpassword, new_lanman_hash) 01381 && E_deshash(oldpassword, old_lanman_hash)) { 01382 /* E_deshash returns false for 'long' passwords (> 14 01383 DOS chars). This allows us to match Win2k, which 01384 does not store a LM hash for these passwords (which 01385 would reduce the effective password length to 14) */ 01386 01387 encode_pw_buffer(new_lm_password, newpassword, STR_UNICODE); 01388 01389 SamOEMhash( new_lm_password, old_nt_hash, 516); 01390 E_old_pw_hash( new_nt_hash, old_lanman_hash, old_lanman_hash_enc); 01391 } else { 01392 ZERO_STRUCT(new_lm_password); 01393 ZERO_STRUCT(old_lanman_hash_enc); 01394 } 01395 01396 encode_pw_buffer(new_nt_password, newpassword, STR_UNICODE); 01397 01398 SamOEMhash( new_nt_password, old_nt_hash, 516); 01399 E_old_pw_hash( new_nt_hash, old_nt_hash, old_nt_hash_enc); 01400 01401 /* Marshall data and send request */ 01402 01403 init_samr_q_chgpasswd_user3(&q, srv_name_slash, username, 01404 new_nt_password, 01405 old_nt_hash_enc, 01406 new_lm_password, 01407 old_lanman_hash_enc); 01408 r.info = info; 01409 r.reject = reject; 01410 01411 CLI_DO_RPC(cli, mem_ctx, PI_SAMR, SAMR_CHGPASSWD_USER3, 01412 q, r, 01413 qbuf, rbuf, 01414 samr_io_q_chgpasswd_user3, 01415 samr_io_r_chgpasswd_user3, 01416 NT_STATUS_UNSUCCESSFUL); 01417 01418 /* Return output parameters */ 01419 01420 return r.status; 01421 }
void get_query_dispinfo_params | ( | int | loop_count, | |
uint32 * | max_entries, | |||
uint32 * | max_size | |||
) |
cli_samr.c の 1428 行で定義されています。
参照元 cac_SamGetDisplayInfo()・cmd_samr_query_dispinfo()・query_user_list()・rpc_group_list_internals()・rpc_user_list_internals().
01430 { 01431 switch(loop_count) { 01432 case 0: 01433 *max_entries = 512; 01434 *max_size = 16383; 01435 break; 01436 case 1: 01437 *max_entries = 1024; 01438 *max_size = 32766; 01439 break; 01440 case 2: 01441 *max_entries = 2048; 01442 *max_size = 65532; 01443 break; 01444 case 3: 01445 *max_entries = 4096; 01446 *max_size = 131064; 01447 break; 01448 default: /* loop_count >= 4 */ 01449 *max_entries = 4096; 01450 *max_size = 131071; 01451 break; 01452 } 01453 }
NTSTATUS rpccli_samr_query_dispinfo | ( | struct rpc_pipe_client * | cli, | |
TALLOC_CTX * | mem_ctx, | |||
POLICY_HND * | domain_pol, | |||
uint32 * | start_idx, | |||
uint16 | switch_value, | |||
uint32 * | num_entries, | |||
uint32 | max_entries, | |||
uint32 | max_size, | |||
SAM_DISPINFO_CTR * | ctr | |||
) |
cli_samr.c の 1457 行で定義されています。
参照先 cli・r_samr_query_dispinfo_info::ctr・init_samr_q_query_dispinfo()・r_samr_query_dispinfo_info::num_entries・result・samr_io_q_query_dispinfo()・samr_io_r_query_dispinfo()・r_samr_query_dispinfo_info::status.
参照元 cac_SamGetDisplayInfo()・cmd_samr_query_dispinfo()・query_user_list()・rpc_group_list_internals()・rpc_user_list_internals().
01463 { 01464 prs_struct qbuf, rbuf; 01465 SAMR_Q_QUERY_DISPINFO q; 01466 SAMR_R_QUERY_DISPINFO r; 01467 NTSTATUS result = NT_STATUS_UNSUCCESSFUL; 01468 01469 DEBUG(10,("cli_samr_query_dispinfo for start_idx = %u\n", *start_idx)); 01470 01471 ZERO_STRUCT(q); 01472 ZERO_STRUCT(r); 01473 01474 *num_entries = 0; 01475 01476 /* Marshall data and send request */ 01477 01478 init_samr_q_query_dispinfo(&q, domain_pol, switch_value, 01479 *start_idx, max_entries, max_size); 01480 01481 r.ctr = ctr; 01482 01483 CLI_DO_RPC(cli, mem_ctx, PI_SAMR, SAMR_QUERY_DISPINFO, 01484 q, r, 01485 qbuf, rbuf, 01486 samr_io_q_query_dispinfo, 01487 samr_io_r_query_dispinfo, 01488 NT_STATUS_UNSUCCESSFUL); 01489 01490 /* Return output parameters */ 01491 01492 result = r.status; 01493 01494 if (!NT_STATUS_IS_OK(result) && 01495 NT_STATUS_V(result) != NT_STATUS_V(STATUS_MORE_ENTRIES)) { 01496 goto done; 01497 } 01498 01499 *num_entries = r.num_entries; 01500 *start_idx += r.num_entries; /* No next_idx in this structure! */ 01501 01502 done: 01503 return result; 01504 }
NTSTATUS rpccli_samr_lookup_rids | ( | struct rpc_pipe_client * | cli, | |
TALLOC_CTX * | mem_ctx, | |||
POLICY_HND * | domain_pol, | |||
uint32 | num_rids, | |||
uint32 * | rids, | |||
uint32 * | num_names, | |||
char *** | names, | |||
uint32 ** | name_types | |||
) |
cli_samr.c の 1509 行で定義されています。
参照先 cli・init_samr_q_lookup_rids()・r_samr_lookup_rids_info::num_names1・result・samr_io_q_lookup_rids()・samr_io_r_lookup_rids()・r_samr_lookup_rids_info::status・talloc_strdup()・r_samr_lookup_rids_info::type・r_samr_lookup_rids_info::uni_name・unistr2_to_ascii().
参照元 cac_SamGetNamesFromRids()・cmd_samr_lookup_rids()・lookup_groupmem()・rpc_list_group_members()・rpc_user_info_internals().
01515 { 01516 prs_struct qbuf, rbuf; 01517 SAMR_Q_LOOKUP_RIDS q; 01518 SAMR_R_LOOKUP_RIDS r; 01519 NTSTATUS result = NT_STATUS_UNSUCCESSFUL; 01520 uint32 i; 01521 01522 DEBUG(10,("cli_samr_lookup_rids\n")); 01523 01524 if (num_rids > 1000) { 01525 DEBUG(2, ("cli_samr_lookup_rids: warning: NT4 can crash if " 01526 "more than ~1000 rids are looked up at once.\n")); 01527 } 01528 01529 ZERO_STRUCT(q); 01530 ZERO_STRUCT(r); 01531 01532 /* Marshall data and send request */ 01533 01534 init_samr_q_lookup_rids(mem_ctx, &q, domain_pol, 1000, num_rids, rids); 01535 01536 CLI_DO_RPC(cli, mem_ctx, PI_SAMR, SAMR_LOOKUP_RIDS, 01537 q, r, 01538 qbuf, rbuf, 01539 samr_io_q_lookup_rids, 01540 samr_io_r_lookup_rids, 01541 NT_STATUS_UNSUCCESSFUL); 01542 01543 /* Return output parameters */ 01544 01545 result = r.status; 01546 01547 if (!NT_STATUS_IS_OK(result) && 01548 !NT_STATUS_EQUAL(result, STATUS_SOME_UNMAPPED)) 01549 goto done; 01550 01551 if (r.num_names1 == 0) { 01552 *num_names = 0; 01553 *names = NULL; 01554 goto done; 01555 } 01556 01557 *num_names = r.num_names1; 01558 *names = TALLOC_ARRAY(mem_ctx, char *, r.num_names1); 01559 *name_types = TALLOC_ARRAY(mem_ctx, uint32, r.num_names1); 01560 01561 if ((*names == NULL) || (*name_types == NULL)) { 01562 TALLOC_FREE(*names); 01563 TALLOC_FREE(*name_types); 01564 return NT_STATUS_NO_MEMORY; 01565 } 01566 01567 for (i = 0; i < r.num_names1; i++) { 01568 fstring tmp; 01569 01570 unistr2_to_ascii(tmp, &r.uni_name[i], sizeof(tmp) - 1); 01571 (*names)[i] = talloc_strdup(mem_ctx, tmp); 01572 (*name_types)[i] = r.type[i]; 01573 } 01574 01575 done: 01576 01577 return result; 01578 }
NTSTATUS rpccli_samr_lookup_names | ( | struct rpc_pipe_client * | cli, | |
TALLOC_CTX * | mem_ctx, | |||
POLICY_HND * | domain_pol, | |||
uint32 | flags, | |||
uint32 | num_names, | |||
const char ** | names, | |||
uint32 * | num_rids, | |||
uint32 ** | rids, | |||
uint32 ** | rid_types | |||
) |
cli_samr.c の 1582 行で定義されています。
参照先 cli・init_samr_q_lookup_names()・r_samr_lookup_names_info::num_rids1・result・r_samr_lookup_names_info::rids・samr_io_q_lookup_names()・samr_io_r_lookup_names()・r_samr_lookup_names_info::status・r_samr_lookup_names_info::types.
参照元 cac_SamGetRidsFromNames()・cac_SamOpenUser()・cmd_samr_delete_alias()・cmd_samr_delete_dom_user()・cmd_samr_lookup_names()・cmd_samr_query_user()・net_rpc_join_newstyle()・netdom_join_domain()・netdom_leave_domain()・rpc_add_groupmem()・rpc_del_groupmem()・rpc_group_delete_internals()・rpc_group_members_internals()・rpc_group_rename_internals()・rpc_trustdom_del_internals()・rpc_user_add_internals()・rpc_user_del_internals()・rpc_user_info_internals()・rpc_user_password_internals()・rpc_user_rename_internals().
01587 { 01588 prs_struct qbuf, rbuf; 01589 SAMR_Q_LOOKUP_NAMES q; 01590 SAMR_R_LOOKUP_NAMES r; 01591 NTSTATUS result = NT_STATUS_UNSUCCESSFUL; 01592 uint32 i; 01593 01594 DEBUG(10,("cli_samr_lookup_names\n")); 01595 01596 ZERO_STRUCT(q); 01597 ZERO_STRUCT(r); 01598 01599 /* Marshall data and send request */ 01600 01601 init_samr_q_lookup_names(mem_ctx, &q, domain_pol, flags, 01602 num_names, names); 01603 01604 CLI_DO_RPC(cli, mem_ctx, PI_SAMR, SAMR_LOOKUP_NAMES, 01605 q, r, 01606 qbuf, rbuf, 01607 samr_io_q_lookup_names, 01608 samr_io_r_lookup_names, 01609 NT_STATUS_UNSUCCESSFUL); 01610 01611 /* Return output parameters */ 01612 01613 if (!NT_STATUS_IS_OK(result = r.status)) { 01614 goto done; 01615 } 01616 01617 if (r.num_rids1 == 0) { 01618 *num_rids = 0; 01619 goto done; 01620 } 01621 01622 *num_rids = r.num_rids1; 01623 *rids = TALLOC_ARRAY(mem_ctx, uint32, r.num_rids1); 01624 *rid_types = TALLOC_ARRAY(mem_ctx, uint32, r.num_rids1); 01625 01626 if ((*rids == NULL) || (*rid_types == NULL)) { 01627 TALLOC_FREE(*rids); 01628 TALLOC_FREE(*rid_types); 01629 return NT_STATUS_NO_MEMORY; 01630 } 01631 01632 for (i = 0; i < r.num_rids1; i++) { 01633 (*rids)[i] = r.rids[i]; 01634 (*rid_types)[i] = r.types[i]; 01635 } 01636 01637 done: 01638 01639 return result; 01640 }
NTSTATUS rpccli_samr_create_dom_user | ( | struct rpc_pipe_client * | cli, | |
TALLOC_CTX * | mem_ctx, | |||
POLICY_HND * | domain_pol, | |||
const char * | acct_name, | |||
uint32 | acb_info, | |||
uint32 | unknown, | |||
POLICY_HND * | user_pol, | |||
uint32 * | rid | |||
) |
cli_samr.c の 1644 行で定義されています。
参照先 cli・init_samr_q_create_user()・result・samr_io_q_create_user()・samr_io_r_create_user()・r_samr_create_user_info::status・r_samr_create_user_info::user_pol・r_samr_create_user_info::user_rid.
参照元 cac_SamCreateUser()・cmd_samr_create_dom_user()・net_rpc_join_newstyle()・netdom_join_domain()・rpc_trustdom_add_internals()・rpc_user_add_internals()・samr_create_dom_user().
01648 { 01649 prs_struct qbuf, rbuf; 01650 SAMR_Q_CREATE_USER q; 01651 SAMR_R_CREATE_USER r; 01652 NTSTATUS result = NT_STATUS_UNSUCCESSFUL; 01653 01654 DEBUG(10,("cli_samr_create_dom_user %s\n", acct_name)); 01655 01656 ZERO_STRUCT(q); 01657 ZERO_STRUCT(r); 01658 01659 /* Marshall data and send request */ 01660 01661 init_samr_q_create_user(&q, domain_pol, acct_name, acb_info, unknown); 01662 01663 CLI_DO_RPC(cli, mem_ctx, PI_SAMR, SAMR_CREATE_USER, 01664 q, r, 01665 qbuf, rbuf, 01666 samr_io_q_create_user, 01667 samr_io_r_create_user, 01668 NT_STATUS_UNSUCCESSFUL); 01669 01670 /* Return output parameters */ 01671 01672 if (!NT_STATUS_IS_OK(result = r.status)) { 01673 goto done; 01674 } 01675 01676 if (user_pol) 01677 *user_pol = r.user_pol; 01678 01679 if (rid) 01680 *rid = r.user_rid; 01681 01682 done: 01683 01684 return result; 01685 }
NTSTATUS rpccli_samr_set_userinfo | ( | struct rpc_pipe_client * | cli, | |
TALLOC_CTX * | mem_ctx, | |||
const POLICY_HND * | user_pol, | |||
uint16 | switch_value, | |||
DATA_BLOB * | sess_key, | |||
SAM_USERINFO_CTR * | ctr | |||
) |
cli_samr.c の 1689 行で定義されています。
参照先 cli・q_samr_set_user_info::ctr・sam_userinfo_ctr_info::id・sam_userinfo_ctr_info::info・init_samr_q_set_userinfo()・data_blob_::length・prs_init()・result・samr_io_q_set_userinfo()・samr_io_r_set_userinfo()・r_samr_set_user_info::status.
参照元 cac_SamRenameUser()・cac_SamSetPassword()・cac_SamSetUserInfo()・cac_SamSetUserInfoCtr()・net_rpc_join_newstyle()・netdom_join_domain()・rpc_trustdom_add_internals()・rpc_user_add_internals()・rpc_user_password_internals()・rpc_user_rename_internals().
01692 { 01693 prs_struct qbuf, rbuf; 01694 SAMR_Q_SET_USERINFO q; 01695 SAMR_R_SET_USERINFO r; 01696 NTSTATUS result = NT_STATUS_UNSUCCESSFUL; 01697 01698 DEBUG(10,("cli_samr_set_userinfo\n")); 01699 01700 ZERO_STRUCT(q); 01701 ZERO_STRUCT(r); 01702 01703 if (!sess_key->length) { 01704 DEBUG(1, ("No user session key\n")); 01705 return NT_STATUS_NO_USER_SESSION_KEY; 01706 } 01707 01708 /* Initialise parse structures */ 01709 01710 prs_init(&qbuf, RPC_MAX_PDU_FRAG_LEN, mem_ctx, MARSHALL); 01711 prs_init(&rbuf, 0, mem_ctx, UNMARSHALL); 01712 01713 /* Marshall data and send request */ 01714 01715 q.ctr = ctr; 01716 01717 init_samr_q_set_userinfo(&q, user_pol, sess_key, switch_value, 01718 ctr->info.id); 01719 01720 CLI_DO_RPC(cli, mem_ctx, PI_SAMR, SAMR_SET_USERINFO, 01721 q, r, 01722 qbuf, rbuf, 01723 samr_io_q_set_userinfo, 01724 samr_io_r_set_userinfo, 01725 NT_STATUS_UNSUCCESSFUL); 01726 01727 /* Return output parameters */ 01728 01729 if (!NT_STATUS_IS_OK(result = r.status)) { 01730 goto done; 01731 } 01732 01733 done: 01734 01735 return result; 01736 }
NTSTATUS rpccli_samr_set_userinfo2 | ( | struct rpc_pipe_client * | cli, | |
TALLOC_CTX * | mem_ctx, | |||
const POLICY_HND * | user_pol, | |||
uint16 | switch_value, | |||
DATA_BLOB * | sess_key, | |||
SAM_USERINFO_CTR * | ctr | |||
) |
cli_samr.c の 1740 行で定義されています。
参照先 cli・init_samr_q_set_userinfo2()・data_blob_::length・result・samr_io_q_set_userinfo2()・samr_io_r_set_userinfo2()・r_samr_set_user_info2::status.
参照元 cac_SamDisableUser()・cac_SamEnableUser()・cac_SamSetUserInfo()・net_rpc_join_newstyle()・netdom_join_domain()・netdom_leave_domain()・rpc_sh_user_flag_edit_internals()・rpc_sh_user_str_edit_internals()・samr_set_user_info2().
01743 { 01744 prs_struct qbuf, rbuf; 01745 SAMR_Q_SET_USERINFO2 q; 01746 SAMR_R_SET_USERINFO2 r; 01747 NTSTATUS result = NT_STATUS_UNSUCCESSFUL; 01748 01749 DEBUG(10,("cli_samr_set_userinfo2\n")); 01750 01751 if (!sess_key->length) { 01752 DEBUG(1, ("No user session key\n")); 01753 return NT_STATUS_NO_USER_SESSION_KEY; 01754 } 01755 01756 ZERO_STRUCT(q); 01757 ZERO_STRUCT(r); 01758 01759 /* Marshall data and send request */ 01760 01761 init_samr_q_set_userinfo2(&q, user_pol, sess_key, switch_value, ctr); 01762 01763 CLI_DO_RPC(cli, mem_ctx, PI_SAMR, SAMR_SET_USERINFO2, 01764 q, r, 01765 qbuf, rbuf, 01766 samr_io_q_set_userinfo2, 01767 samr_io_r_set_userinfo2, 01768 NT_STATUS_UNSUCCESSFUL); 01769 01770 /* Return output parameters */ 01771 01772 if (!NT_STATUS_IS_OK(result = r.status)) { 01773 goto done; 01774 } 01775 01776 done: 01777 01778 return result; 01779 }
NTSTATUS rpccli_samr_delete_dom_group | ( | struct rpc_pipe_client * | cli, | |
TALLOC_CTX * | mem_ctx, | |||
POLICY_HND * | group_pol | |||
) |
cli_samr.c の 1783 行で定義されています。
参照先 cli・init_samr_q_delete_dom_group()・result・samr_io_q_delete_dom_group()・samr_io_r_delete_dom_group()・r_samr_delete_dom_group_info::status.
参照元 cac_SamDeleteGroup()・rpc_group_delete_internals().
01785 { 01786 prs_struct qbuf, rbuf; 01787 SAMR_Q_DELETE_DOM_GROUP q; 01788 SAMR_R_DELETE_DOM_GROUP r; 01789 NTSTATUS result = NT_STATUS_UNSUCCESSFUL; 01790 01791 DEBUG(10,("cli_samr_delete_dom_group\n")); 01792 01793 ZERO_STRUCT(q); 01794 ZERO_STRUCT(r); 01795 01796 /* Marshall data and send request */ 01797 01798 init_samr_q_delete_dom_group(&q, group_pol); 01799 01800 CLI_DO_RPC(cli, mem_ctx, PI_SAMR, SAMR_DELETE_DOM_GROUP, 01801 q, r, 01802 qbuf, rbuf, 01803 samr_io_q_delete_dom_group, 01804 samr_io_r_delete_dom_group, 01805 NT_STATUS_UNSUCCESSFUL); 01806 01807 /* Return output parameters */ 01808 01809 result = r.status; 01810 01811 return result; 01812 }
NTSTATUS rpccli_samr_delete_dom_alias | ( | struct rpc_pipe_client * | cli, | |
TALLOC_CTX * | mem_ctx, | |||
POLICY_HND * | alias_pol | |||
) |
cli_samr.c の 1816 行で定義されています。
参照先 cli・init_samr_q_delete_dom_alias()・result・samr_io_q_delete_dom_alias()・samr_io_r_delete_dom_alias()・r_samr_delete_dom_alias_info::status.
参照元 cac_SamDeleteAlias()・cmd_samr_delete_alias()・rpc_group_delete_internals().
01818 { 01819 prs_struct qbuf, rbuf; 01820 SAMR_Q_DELETE_DOM_ALIAS q; 01821 SAMR_R_DELETE_DOM_ALIAS r; 01822 NTSTATUS result = NT_STATUS_UNSUCCESSFUL; 01823 01824 DEBUG(10,("cli_samr_delete_dom_alias\n")); 01825 01826 ZERO_STRUCT(q); 01827 ZERO_STRUCT(r); 01828 01829 /* Marshall data and send request */ 01830 01831 init_samr_q_delete_dom_alias(&q, alias_pol); 01832 01833 CLI_DO_RPC(cli, mem_ctx, PI_SAMR, SAMR_DELETE_DOM_ALIAS, 01834 q, r, 01835 qbuf, rbuf, 01836 samr_io_q_delete_dom_alias, 01837 samr_io_r_delete_dom_alias, 01838 NT_STATUS_UNSUCCESSFUL); 01839 01840 /* Return output parameters */ 01841 01842 result = r.status; 01843 01844 return result; 01845 }
NTSTATUS rpccli_samr_delete_dom_user | ( | struct rpc_pipe_client * | cli, | |
TALLOC_CTX * | mem_ctx, | |||
POLICY_HND * | user_pol | |||
) |
cli_samr.c の 1849 行で定義されています。
参照先 cli・init_samr_q_delete_dom_user()・result・samr_io_q_delete_dom_user()・samr_io_r_delete_dom_user()・r_samr_delete_dom_user_info::status.
参照元 cac_SamDeleteUser()・cmd_samr_delete_dom_user()・rpc_trustdom_del_internals()・rpc_user_add_internals()・rpc_user_del_internals()・samr_delete_dom_user().
01851 { 01852 prs_struct qbuf, rbuf; 01853 SAMR_Q_DELETE_DOM_USER q; 01854 SAMR_R_DELETE_DOM_USER r; 01855 NTSTATUS result = NT_STATUS_UNSUCCESSFUL; 01856 01857 DEBUG(10,("cli_samr_delete_dom_user\n")); 01858 01859 ZERO_STRUCT(q); 01860 ZERO_STRUCT(r); 01861 01862 /* Marshall data and send request */ 01863 01864 init_samr_q_delete_dom_user(&q, user_pol); 01865 01866 CLI_DO_RPC(cli, mem_ctx, PI_SAMR, SAMR_DELETE_DOM_USER, 01867 q, r, 01868 qbuf, rbuf, 01869 samr_io_q_delete_dom_user, 01870 samr_io_r_delete_dom_user, 01871 NT_STATUS_UNSUCCESSFUL); 01872 01873 /* Return output parameters */ 01874 01875 result = r.status; 01876 01877 return result; 01878 }
NTSTATUS rpccli_samr_remove_sid_foreign_domain | ( | struct rpc_pipe_client * | cli, | |
TALLOC_CTX * | mem_ctx, | |||
POLICY_HND * | user_pol, | |||
DOM_SID * | sid | |||
) |
cli_samr.c の 1882 行で定義されています。
参照先 cli・init_samr_q_remove_sid_foreign_domain()・result・samr_io_q_remove_sid_foreign_domain()・samr_io_r_remove_sid_foreign_domain()・r_samr_remove_sid_foreign_domain_info::status.
参照元 rpc_trustdom_del_internals().
01886 { 01887 prs_struct qbuf, rbuf; 01888 SAMR_Q_REMOVE_SID_FOREIGN_DOMAIN q; 01889 SAMR_R_REMOVE_SID_FOREIGN_DOMAIN r; 01890 NTSTATUS result = NT_STATUS_UNSUCCESSFUL; 01891 01892 DEBUG(10,("cli_samr_remove_sid_foreign_domain\n")); 01893 01894 ZERO_STRUCT(q); 01895 ZERO_STRUCT(r); 01896 01897 /* Marshall data and send request */ 01898 01899 init_samr_q_remove_sid_foreign_domain(&q, user_pol, sid); 01900 01901 CLI_DO_RPC(cli, mem_ctx, PI_SAMR, SAMR_REMOVE_SID_FOREIGN_DOMAIN, 01902 q, r, 01903 qbuf, rbuf, 01904 samr_io_q_remove_sid_foreign_domain, 01905 samr_io_r_remove_sid_foreign_domain, 01906 NT_STATUS_UNSUCCESSFUL); 01907 01908 /* Return output parameters */ 01909 01910 result = r.status; 01911 01912 return result; 01913 }
NTSTATUS rpccli_samr_query_sec_obj | ( | struct rpc_pipe_client * | cli, | |
TALLOC_CTX * | mem_ctx, | |||
POLICY_HND * | user_pol, | |||
uint32 | sec_info, | |||
TALLOC_CTX * | ctx, | |||
SEC_DESC_BUF ** | sec_desc_buf | |||
) |
cli_samr.c の 1917 行で定義されています。
参照先 r_samr_query_sec_obj_info::buf・cli・dup_sec_desc_buf()・init_samr_q_query_sec_obj()・result・samr_io_q_query_sec_obj()・samr_io_r_query_sec_obj()・r_samr_query_sec_obj_info::status.
参照元 cac_SamGetSecurityObject()・cmd_samr_query_sec_obj().
01920 { 01921 prs_struct qbuf, rbuf; 01922 SAMR_Q_QUERY_SEC_OBJ q; 01923 SAMR_R_QUERY_SEC_OBJ r; 01924 NTSTATUS result = NT_STATUS_UNSUCCESSFUL; 01925 01926 DEBUG(10,("cli_samr_query_sec_obj\n")); 01927 01928 ZERO_STRUCT(q); 01929 ZERO_STRUCT(r); 01930 01931 /* Marshall data and send request */ 01932 01933 init_samr_q_query_sec_obj(&q, user_pol, sec_info); 01934 01935 CLI_DO_RPC(cli, mem_ctx, PI_SAMR, SAMR_QUERY_SEC_OBJECT, 01936 q, r, 01937 qbuf, rbuf, 01938 samr_io_q_query_sec_obj, 01939 samr_io_r_query_sec_obj, 01940 NT_STATUS_UNSUCCESSFUL); 01941 01942 /* Return output parameters */ 01943 01944 result = r.status; 01945 *sec_desc_buf=dup_sec_desc_buf(ctx, r.buf); 01946 01947 return result; 01948 }
NTSTATUS rpccli_samr_set_sec_obj | ( | struct rpc_pipe_client * | cli, | |
TALLOC_CTX * | mem_ctx, | |||
POLICY_HND * | user_pol, | |||
uint32 | sec_info, | |||
SEC_DESC_BUF * | sec_desc_buf | |||
) |
cli_samr.c の 1952 行で定義されています。
参照先 cli・init_samr_q_set_sec_obj()・result・samr_io_q_set_sec_obj()・samr_io_r_set_sec_obj()・r_samr_set_sec_obj_info::status.
01955 { 01956 prs_struct qbuf, rbuf; 01957 SAMR_Q_SET_SEC_OBJ q; 01958 SAMR_R_SET_SEC_OBJ r; 01959 NTSTATUS result = NT_STATUS_UNSUCCESSFUL; 01960 01961 DEBUG(10,("cli_samr_set_sec_obj\n")); 01962 01963 ZERO_STRUCT(q); 01964 ZERO_STRUCT(r); 01965 01966 /* Marshall data and send request */ 01967 01968 init_samr_q_set_sec_obj(&q, user_pol, sec_info, sec_desc_buf); 01969 01970 CLI_DO_RPC(cli, mem_ctx, PI_SAMR, SAMR_SET_SEC_OBJECT, 01971 q, r, 01972 qbuf, rbuf, 01973 samr_io_q_set_sec_obj, 01974 samr_io_r_set_sec_obj, 01975 NT_STATUS_UNSUCCESSFUL); 01976 01977 /* Return output parameters */ 01978 01979 result = r.status; 01980 01981 return result; 01982 }
NTSTATUS rpccli_samr_get_dom_pwinfo | ( | struct rpc_pipe_client * | cli, | |
TALLOC_CTX * | mem_ctx, | |||
uint16 * | min_pwd_length, | |||
uint32 * | password_properties | |||
) |
cli_samr.c の 1987 行で定義されています。
参照先 cli・cli_state::desthost・init_samr_q_get_dom_pwinfo()・r_samr_get_dom_pwinfo::min_pwd_length・r_samr_get_dom_pwinfo::password_properties・result・samr_io_q_get_dom_pwinfo()・samr_io_r_get_dom_pwinfo()・r_samr_get_dom_pwinfo::status.
参照元 cmd_samr_get_dom_pwinfo().
01989 { 01990 prs_struct qbuf, rbuf; 01991 SAMR_Q_GET_DOM_PWINFO q; 01992 SAMR_R_GET_DOM_PWINFO r; 01993 NTSTATUS result = NT_STATUS_UNSUCCESSFUL; 01994 01995 DEBUG(10,("cli_samr_get_dom_pwinfo\n")); 01996 01997 ZERO_STRUCT(q); 01998 ZERO_STRUCT(r); 01999 02000 /* Marshall data and send request */ 02001 02002 init_samr_q_get_dom_pwinfo(&q, cli->cli->desthost); 02003 02004 CLI_DO_RPC(cli, mem_ctx, PI_SAMR, SAMR_GET_DOM_PWINFO, 02005 q, r, 02006 qbuf, rbuf, 02007 samr_io_q_get_dom_pwinfo, 02008 samr_io_r_get_dom_pwinfo, 02009 NT_STATUS_UNSUCCESSFUL); 02010 02011 /* Return output parameters */ 02012 02013 result = r.status; 02014 02015 if (NT_STATUS_IS_OK(result)) { 02016 if (min_pwd_length) 02017 *min_pwd_length = r.min_pwd_length; 02018 if (password_properties) 02019 *password_properties = r.password_properties; 02020 } 02021 02022 return result; 02023 }
NTSTATUS rpccli_samr_get_usrdom_pwinfo | ( | struct rpc_pipe_client * | cli, | |
TALLOC_CTX * | mem_ctx, | |||
POLICY_HND * | pol, | |||
uint16 * | min_pwd_length, | |||
uint32 * | password_properties, | |||
uint32 * | unknown1 | |||
) |
cli_samr.c の 2027 行で定義されています。
参照先 cli・init_samr_q_get_usrdom_pwinfo()・r_samr_usrdom_pwinfo_info::min_pwd_length・r_samr_usrdom_pwinfo_info::password_properties・pol・result・samr_io_q_get_usrdom_pwinfo()・samr_io_r_get_usrdom_pwinfo()・r_samr_usrdom_pwinfo_info::status・r_samr_usrdom_pwinfo_info::unknown_1.
参照元 cmd_samr_get_usrdom_pwinfo().
02030 { 02031 prs_struct qbuf, rbuf; 02032 SAMR_Q_GET_USRDOM_PWINFO q; 02033 SAMR_R_GET_USRDOM_PWINFO r; 02034 NTSTATUS result = NT_STATUS_UNSUCCESSFUL; 02035 02036 DEBUG(10,("cli_samr_get_usrdom_pwinfo\n")); 02037 02038 ZERO_STRUCT(q); 02039 ZERO_STRUCT(r); 02040 02041 /* Marshall data and send request */ 02042 02043 init_samr_q_get_usrdom_pwinfo(&q, pol); 02044 02045 CLI_DO_RPC(cli, mem_ctx, PI_SAMR, SAMR_GET_USRDOM_PWINFO, 02046 q, r, 02047 qbuf, rbuf, 02048 samr_io_q_get_usrdom_pwinfo, 02049 samr_io_r_get_usrdom_pwinfo, 02050 NT_STATUS_UNSUCCESSFUL); 02051 02052 /* Return output parameters */ 02053 02054 result = r.status; 02055 02056 if (NT_STATUS_IS_OK(result)) { 02057 if (min_pwd_length) 02058 *min_pwd_length = r.min_pwd_length; 02059 if (password_properties) 02060 *password_properties = r.password_properties; 02061 if (unknown1) 02062 *unknown1 = r.unknown_1; 02063 } 02064 02065 return result; 02066 }
NTSTATUS rpccli_samr_lookup_domain | ( | struct rpc_pipe_client * | cli, | |
TALLOC_CTX * | mem_ctx, | |||
POLICY_HND * | user_pol, | |||
char * | domain_name, | |||
DOM_SID * | sid | |||
) |
cli_samr.c の 2071 行で定義されています。
参照先 cli・r_samr_lookup_domain_info::dom_sid・init_samr_q_lookup_domain()・result・samr_io_q_lookup_domain()・samr_io_r_lookup_domain()・DOM_SID2::sid・sid_copy()・r_samr_lookup_domain_info::status.
参照元 cac_SamLookupDomain()・cmd_samr_lookup_domain().
02074 { 02075 prs_struct qbuf, rbuf; 02076 SAMR_Q_LOOKUP_DOMAIN q; 02077 SAMR_R_LOOKUP_DOMAIN r; 02078 NTSTATUS result = NT_STATUS_UNSUCCESSFUL; 02079 02080 DEBUG(10,("cli_samr_lookup_domain\n")); 02081 02082 ZERO_STRUCT(q); 02083 ZERO_STRUCT(r); 02084 02085 /* Marshall data and send request */ 02086 02087 init_samr_q_lookup_domain(&q, user_pol, domain_name); 02088 02089 CLI_DO_RPC(cli, mem_ctx, PI_SAMR, SAMR_LOOKUP_DOMAIN, 02090 q, r, 02091 qbuf, rbuf, 02092 samr_io_q_lookup_domain, 02093 samr_io_r_lookup_domain, 02094 NT_STATUS_UNSUCCESSFUL); 02095 02096 /* Return output parameters */ 02097 02098 result = r.status; 02099 02100 if (NT_STATUS_IS_OK(result)) 02101 sid_copy(sid, &r.dom_sid.sid); 02102 02103 return result; 02104 }