preparing for release of alpha.0.8
[Samba.git] / source / include / rpc_parse_proto.h
blobe9bd5044dd050ee5589e0a80afe948af4bc1c33b
1 #ifndef _RPC_PARSE_PROTO_H_
2 #define _RPC_PARSE_PROTO_H_
3 /* This file is automatically generated with "make proto". DO NOT EDIT */
6 /*The following definitions come from lib/msrpc-client.c */
8 BOOL receive_msrpc(int fd, prs_struct * data, unsigned int timeout);
9 BOOL msrpc_send(int fd, prs_struct * ps);
10 BOOL msrpc_receive(int fd, prs_struct * ps);
11 BOOL ncalrpc_l_connect(struct msrpc_local *msrpc, const char *pipe_name);
12 void ncalrpc_l_close_socket(struct msrpc_local *msrpc);
13 void ncalrpc_l_sockopt(struct msrpc_local *msrpc, char *options);
14 BOOL ncalrpc_l_connect_auth(struct msrpc_local *msrpc,
15 const vuser_key * key, const char *pipename);
16 struct msrpc_local *ncalrpc_l_initialise(struct msrpc_local *msrpc,
17 const vuser_key * key);
18 void ncalrpc_l_shutdown(struct msrpc_local *msrpc);
19 BOOL ncalrpc_l_establish_connection(struct msrpc_local *msrpc,
20 const char *pipe_name);
22 /*The following definitions come from rpc_parse/parse_at.c */
24 BOOL make_at_q_add_job(AT_Q_ADD_JOB *q_a, char *server,
25 AT_JOB_INFO *info, char *command);
26 BOOL at_io_job_info(char *desc, AT_JOB_INFO *info, prs_struct *ps, int depth);
27 BOOL at_io_q_add_job(char *desc, AT_Q_ADD_JOB *q_a, prs_struct *ps, int depth);
28 BOOL at_io_r_add_job(char *desc, AT_R_ADD_JOB *r_a, prs_struct *ps, int depth);
29 BOOL make_at_q_del_job(AT_Q_DEL_JOB *q_a, char *server, uint32 min_jobid,
30 uint32 max_jobid);
31 BOOL at_io_q_del_job(char *desc, AT_Q_DEL_JOB *q_d, prs_struct *ps, int depth);
32 BOOL at_io_r_del_job(char *desc, AT_R_DEL_JOB *r_d, prs_struct *ps, int depth);
33 BOOL make_at_q_enum_jobs(AT_Q_ENUM_JOBS *q_e, char *server);
34 BOOL at_io_q_enum_jobs(char *desc, AT_Q_ENUM_JOBS *q_e, prs_struct *ps, int depth);
35 BOOL at_io_r_enum_jobs(char *desc, AT_R_ENUM_JOBS *r_e, prs_struct *ps, int depth);
36 BOOL make_at_q_query_job(AT_Q_QUERY_JOB *q_q, char *server, uint32 jobid);
37 BOOL at_io_q_query_job(char *desc, AT_Q_QUERY_JOB *q_q, prs_struct *ps, int depth);
38 BOOL at_io_r_query_job(char *desc, AT_R_QUERY_JOB *r_q, prs_struct *ps, int depth);
40 /*The following definitions come from rpc_parse/parse_brs.c */
42 BOOL make_brs_q_query_info(BRS_Q_QUERY_INFO *q_u,
43 const char *server, uint16 switch_value) ;
44 BOOL brs_io_q_query_info(char *desc, BRS_Q_QUERY_INFO *q_u, prs_struct *ps, int depth);
45 BOOL make_brs_info_100(BRS_INFO_100 *inf);
46 BOOL make_brs_r_query_info(BRS_R_QUERY_INFO *r_u,
47 uint32 switch_value, void *inf,
48 int status) ;
49 BOOL brs_io_r_query_info(char *desc, BRS_R_QUERY_INFO *r_u, prs_struct *ps, int depth);
51 /*The following definitions come from rpc_parse/parse_eventlog.c */
53 BOOL make_eventlog_q_open(EVENTLOG_Q_OPEN *q_u, const char *journal, char *unk);
54 BOOL eventlog_io_q_open(char *desc, EVENTLOG_Q_OPEN *q_u, prs_struct *ps, int depth);
55 BOOL eventlog_io_r_open(char *desc, EVENTLOG_R_OPEN *r_u, prs_struct *ps, int depth);
56 BOOL make_eventlog_q_close(EVENTLOG_Q_CLOSE *q_u, POLICY_HND *pol);
57 BOOL eventlog_io_q_close(char *desc, EVENTLOG_Q_CLOSE *q_u, prs_struct *ps, int depth);
58 BOOL eventlog_io_r_close(char *desc, EVENTLOG_R_CLOSE *r_u, prs_struct *ps, int depth);
59 BOOL make_eventlog_q_numofeventlogrec(EVENTLOG_Q_NUMOFEVENTLOGREC *q_u, POLICY_HND *pol);
60 BOOL eventlog_io_q_numofeventlogrec(char *desc,EVENTLOG_Q_NUMOFEVENTLOGREC *q_u, prs_struct *ps, int depth);
61 BOOL eventlog_io_r_numofeventlogrec(char *desc, EVENTLOG_R_NUMOFEVENTLOGREC *r_u, prs_struct *ps, int depth);
62 BOOL make_eventlog_q_readeventlog(EVENTLOG_Q_READEVENTLOG *q_u, POLICY_HND *pol,
63 uint32 flags, uint32 offset, uint32 number_of_bytes);
64 BOOL eventlog_io_q_readeventlog(char *desc, EVENTLOG_Q_READEVENTLOG *q_u, prs_struct *ps, int depth);
65 BOOL eventlog_io_r_readeventlog(char *desc, EVENTLOG_R_READEVENTLOG *r_u, prs_struct *ps, int depth);
67 /*The following definitions come from rpc_parse/parse_lsa.c */
69 BOOL make_lsa_trans_name(LSA_TRANS_NAME * trn, UNISTR2 * uni_name,
70 uint32 sid_name_use, char *name, uint32 idx);
71 int make_dom_ref_uni(DOM_R_REF * ref, const UNISTR2 * uni_domname,
72 const DOM_SID * dom_sid);
73 int make_dom_ref(DOM_R_REF * ref, const char *domname,
74 const DOM_SID * dom_sid);
75 BOOL make_lsa_sec_qos(LSA_SEC_QOS * qos, uint16 imp_lev, uint8 ctxt,
76 uint8 eff, uint32 unknown);
77 BOOL make_lsa_obj_attr(LSA_OBJ_ATTR * attr, uint32 attributes,
78 LSA_SEC_QOS * qos);
79 BOOL make_q_open_pol(LSA_Q_OPEN_POL * r_q, uint16 system_name,
80 uint32 attributes,
81 uint32 desired_access, LSA_SEC_QOS * qos);
82 BOOL lsa_io_q_open_pol(char *desc, LSA_Q_OPEN_POL * r_q, prs_struct * ps,
83 int depth);
84 BOOL lsa_io_r_open_pol(char *desc, LSA_R_OPEN_POL * r_p, prs_struct * ps,
85 int depth);
86 BOOL make_q_open_pol2(LSA_Q_OPEN_POL2 * r_q, const char *server_name,
87 uint32 attributes,
88 uint32 desired_access, LSA_SEC_QOS * qos);
89 BOOL lsa_io_q_open_pol2(char *desc, LSA_Q_OPEN_POL2 * r_q, prs_struct * ps,
90 int depth);
91 BOOL lsa_io_r_open_pol2(char *desc, LSA_R_OPEN_POL2 * r_p, prs_struct * ps,
92 int depth);
93 BOOL make_q_query_sec_obj(LSA_Q_QUERY_SEC_OBJ * q_q, const POLICY_HND *hnd,
94 uint32 sec_info);
95 BOOL lsa_io_q_query_sec_obj(char *desc, LSA_Q_QUERY_SEC_OBJ * q_q, prs_struct * ps,
96 int depth);
97 BOOL lsa_io_r_query_sec_obj(char *desc, LSA_R_QUERY_SEC_OBJ *r_u, prs_struct *ps, int depth);
98 BOOL make_q_query(LSA_Q_QUERY_INFO * q_q, POLICY_HND *hnd, uint16 info_class);
99 BOOL lsa_io_q_query(char *desc, LSA_Q_QUERY_INFO * q_q, prs_struct * ps,
100 int depth);
101 BOOL make_q_create_secret(LSA_Q_CREATE_SECRET * q_o,
102 const POLICY_HND *pol_hnd, const char *secret_name,
103 uint32 desired_access);
104 BOOL lsa_io_q_create_secret(char *desc, LSA_Q_CREATE_SECRET * q_o,
105 prs_struct * ps, int depth);
106 BOOL lsa_io_r_create_secret(char *desc, LSA_R_CREATE_SECRET * r_o,
107 prs_struct * ps, int depth);
108 BOOL make_q_open_secret(LSA_Q_OPEN_SECRET * q_o, const POLICY_HND *pol_hnd,
109 const char *secret_name, uint32 desired_access);
110 BOOL lsa_io_q_open_secret(char *desc, LSA_Q_OPEN_SECRET * q_o,
111 prs_struct * ps, int depth);
112 BOOL lsa_io_r_open_secret(char *desc, LSA_R_OPEN_SECRET * r_o,
113 prs_struct * ps, int depth);
114 BOOL lsa_io_secret_value(char *desc, LSA_SECRET_VALUE * value,
115 prs_struct * ps, int depth);
116 BOOL lsa_io_secret_info(char *desc, LSA_SECRET_INFO * info, prs_struct * ps,
117 int depth);
118 BOOL lsa_io_secret(char *desc, LSA_SECRET * q_q, prs_struct * ps, int depth);
119 BOOL make_q_query_secret(LSA_Q_QUERY_SECRET * q_q, POLICY_HND *pol,
120 const STRING2 *secret, const NTTIME * update);
121 BOOL lsa_io_q_query_secret(char *desc, LSA_Q_QUERY_SECRET * q_q,
122 prs_struct * ps, int depth);
123 BOOL lsa_io_r_query_secret(char *desc, LSA_R_QUERY_SECRET * r_q,
124 prs_struct * ps, int depth);
125 BOOL lsa_io_q_set_secret(char *desc, LSA_Q_SET_SECRET * q_q, prs_struct * ps,
126 int depth);
127 BOOL lsa_io_r_set_secret(char *desc, LSA_R_SET_SECRET * r_q, prs_struct * ps,
128 int depth);
129 BOOL make_q_enum_trust_dom(LSA_Q_ENUM_TRUST_DOM * q_e,
130 POLICY_HND *pol,
131 uint32 enum_context, uint32 preferred_len);
132 BOOL lsa_io_q_enum_trust_dom(char *desc, LSA_Q_ENUM_TRUST_DOM * q_e,
133 prs_struct * ps, int depth);
134 BOOL make_r_enum_trust_dom(LSA_R_ENUM_TRUST_DOM * r_e, int32 enum_context,
135 uint32 num_domains,
136 UNISTR2 * domain_names, DOM_SID ** domain_sids,
137 uint32 status);
138 BOOL lsa_io_r_enum_trust_dom(char *desc, LSA_R_ENUM_TRUST_DOM * r_e,
139 prs_struct * ps, int depth);
140 void lsa_free_r_enum_trust_dom(LSA_R_ENUM_TRUST_DOM * r_e);
141 BOOL lsa_io_r_query(char *desc, LSA_R_QUERY_INFO * r_q, prs_struct * ps,
142 int depth);
143 BOOL make_lsa_sid_enum(LSA_SID_ENUM * sen, uint32 num_entries,
144 DOM_SID ** sids);
145 BOOL make_q_lookup_sids(LSA_Q_LOOKUP_SIDS * q_l, POLICY_HND *hnd,
146 int num_sids, DOM_SID ** sids, uint16 level);
147 BOOL lsa_io_q_lookup_sids(char *desc, LSA_Q_LOOKUP_SIDS * q_s,
148 prs_struct * ps, int depth);
149 BOOL lsa_io_r_lookup_sids(char *desc, LSA_R_LOOKUP_SIDS * r_s,
150 prs_struct * ps, int depth);
151 BOOL make_q_lookup_names(LSA_Q_LOOKUP_NAMES * q_l, POLICY_HND *hnd,
152 uint32 num_names, char **names);
153 BOOL lsa_io_q_lookup_names(char *desc, LSA_Q_LOOKUP_NAMES * q_r,
154 prs_struct * ps, int depth);
155 BOOL lsa_io_r_lookup_names(char *desc, LSA_R_LOOKUP_NAMES * r_r,
156 prs_struct * ps, int depth);
157 BOOL make_lsa_q_close(LSA_Q_CLOSE * q_c, POLICY_HND *hnd);
158 BOOL lsa_io_q_close(char *desc, LSA_Q_CLOSE * q_c, prs_struct * ps, int depth);
159 BOOL lsa_io_r_close(char *desc, LSA_R_CLOSE * r_c, prs_struct * ps, int depth);
161 /*The following definitions come from rpc_parse/parse_netsec.c */
163 BOOL rpc_hdr_netsec_auth_chk(RPC_HDR_AUTH *rai);
164 BOOL make_rpc_auth_netsec_neg(RPC_AUTH_NETSEC_NEG *neg,
165 fstring domain,
166 fstring myname);
167 BOOL smb_io_rpc_auth_netsec_neg(char *desc, RPC_AUTH_NETSEC_NEG *neg, prs_struct *ps, int depth);
168 BOOL make_rpc_auth_netsec_resp(RPC_AUTH_NETSEC_RESP *rsp, uint32 flags);
169 BOOL smb_io_rpc_auth_netsec_resp(char *desc, RPC_AUTH_NETSEC_RESP *rsp, prs_struct *ps, int depth);
170 BOOL rpc_auth_netsec_chk(RPC_AUTH_NETSEC_CHK *chk);
171 BOOL make_rpc_auth_netsec_chk(RPC_AUTH_NETSEC_CHK *chk,
172 const uchar sig[8],
173 const uchar data1[8],
174 const uchar data3[8],
175 const uchar data8[8]);
176 BOOL smb_io_rpc_auth_netsec_chk(char *desc, RPC_AUTH_NETSEC_CHK *chk, prs_struct *ps, int depth);
177 BOOL netsec_encode(struct netsec_auth_struct *a,
178 RPC_AUTH_NETSEC_CHK *verf,
179 char *data, size_t data_len);
180 BOOL netsec_decode(struct netsec_auth_struct *a,
181 RPC_AUTH_NETSEC_CHK *verf,
182 char *data, size_t data_len);
184 /*The following definitions come from rpc_parse/parse_reg.c */
186 BOOL make_reg_q_open_hkcr(REG_Q_OPEN_HKCR *q_o,
187 uint16 unknown_0, uint32 level);
188 BOOL reg_io_q_open_hkcr(char *desc, REG_Q_OPEN_HKCR *r_q, prs_struct *ps, int depth);
189 BOOL reg_io_r_open_hkcr(char *desc, REG_R_OPEN_HKCR *r_r, prs_struct *ps, int depth);
190 BOOL make_reg_q_open_hklm(REG_Q_OPEN_HKLM *q_o,
191 uint16 unknown_0, uint32 access_mask);
192 BOOL reg_io_q_open_hklm(char *desc, REG_Q_OPEN_HKLM *r_q, prs_struct *ps, int depth);
193 BOOL reg_io_r_open_hklm(char *desc, REG_R_OPEN_HKLM *r_r, prs_struct *ps, int depth);
194 BOOL make_reg_q_flush_key(REG_Q_FLUSH_KEY *q_u, POLICY_HND *pol);
195 BOOL reg_io_q_flush_key(char *desc, REG_Q_FLUSH_KEY *r_q, prs_struct *ps, int depth);
196 BOOL reg_io_r_flush_key(char *desc, REG_R_FLUSH_KEY *r_r, prs_struct *ps, int depth);
197 BOOL make_reg_q_create_key(REG_Q_CREATE_KEY *q_c, POLICY_HND *hnd,
198 char *key_name, char *key_class,
199 SEC_ACCESS *sam_access,
200 SEC_DESC_BUF *sec_buf,
201 int sec_len, SEC_DESC *sec);
202 BOOL reg_io_q_create_key(char *desc, REG_Q_CREATE_KEY *r_q, prs_struct *ps, int depth);
203 BOOL reg_io_r_create_key(char *desc, REG_R_CREATE_KEY *r_r, prs_struct *ps, int depth);
204 BOOL make_reg_q_delete_val(REG_Q_DELETE_VALUE *q_c, POLICY_HND *hnd,
205 char *name);
206 BOOL reg_io_q_delete_val(char *desc, REG_Q_DELETE_VALUE *r_q, prs_struct *ps, int depth);
207 BOOL reg_io_r_delete_val(char *desc, REG_R_DELETE_VALUE *r_r, prs_struct *ps, int depth);
208 BOOL make_reg_q_delete_key(REG_Q_DELETE_KEY *q_c, POLICY_HND *hnd,
209 char *name);
210 BOOL reg_io_q_delete_key(char *desc, REG_Q_DELETE_KEY *r_q, prs_struct *ps, int depth);
211 BOOL reg_io_r_delete_key(char *desc, REG_R_DELETE_KEY *r_r, prs_struct *ps, int depth);
212 BOOL make_reg_q_query_key(REG_Q_QUERY_KEY *q_o, POLICY_HND *hnd,
213 uint32 max_class_len);
214 BOOL reg_io_q_query_key(char *desc, REG_Q_QUERY_KEY *r_q, prs_struct *ps, int depth);
215 BOOL reg_io_r_query_key(char *desc, REG_R_QUERY_KEY *r_r, prs_struct *ps, int depth);
216 BOOL make_reg_q_unk_1a(REG_Q_UNK_1A *q_o, POLICY_HND *hnd);
217 BOOL reg_io_q_unk_1a(char *desc, REG_Q_UNK_1A *r_q, prs_struct *ps, int depth);
218 BOOL reg_io_r_unk_1a(char *desc, REG_R_UNK_1A *r_r, prs_struct *ps, int depth);
219 BOOL make_reg_q_open_hku(REG_Q_OPEN_HKU *q_o,
220 uint16 unknown_0, uint32 level);
221 BOOL reg_io_q_open_hku(char *desc, REG_Q_OPEN_HKU *r_q, prs_struct *ps, int depth);
222 BOOL reg_io_r_open_hku(char *desc, REG_R_OPEN_HKU *r_r, prs_struct *ps, int depth);
223 BOOL make_reg_q_close(REG_Q_CLOSE *q_c, POLICY_HND *hnd);
224 BOOL reg_io_q_close(char *desc, REG_Q_CLOSE *q_u, prs_struct *ps, int depth);
225 BOOL reg_io_r_close(char *desc, REG_R_CLOSE *r_u, prs_struct *ps, int depth);
226 BOOL make_reg_q_set_key_sec(REG_Q_SET_KEY_SEC *q_i, POLICY_HND *pol,
227 uint32 sec_info,
228 uint32 buf_len, SEC_DESC *sec_desc);
229 BOOL reg_io_q_set_key_sec(char *desc, REG_Q_SET_KEY_SEC *r_q, prs_struct *ps, int depth);
230 BOOL reg_io_r_set_key_sec(char *desc, REG_R_SET_KEY_SEC *r_q, prs_struct *ps, int depth);
231 BOOL make_reg_q_get_key_sec(REG_Q_GET_KEY_SEC *q_i, POLICY_HND *pol,
232 uint32 sec_info,
233 uint32 buf_len, SEC_DESC_BUF *sec_buf);
234 BOOL reg_io_q_get_key_sec(char *desc, REG_Q_GET_KEY_SEC *r_q, prs_struct *ps, int depth);
235 BOOL reg_io_r_get_key_sec(char *desc, REG_R_GET_KEY_SEC *r_q, prs_struct *ps, int depth);
236 BOOL make_reg_q_info(REG_Q_INFO *q_i, POLICY_HND *pol, const char *val_name,
237 uint8 major, uint8 minor);
238 BOOL reg_io_q_info(char *desc, REG_Q_INFO *r_q, prs_struct *ps, int depth);
239 BOOL make_reg_r_info(REG_R_INFO *r_r,
240 uint32 *type, BUFFER2 *buf,
241 uint32 status);
242 BOOL reg_io_r_info(char *desc, REG_R_INFO *r_r, prs_struct *ps, int depth);
243 BOOL make_reg_q_enum_val(REG_Q_ENUM_VALUE *q_i, POLICY_HND *pol,
244 uint32 val_idx, uint32 max_val_len,
245 uint32 max_buf_len);
246 BOOL reg_io_q_enum_val(char *desc, REG_Q_ENUM_VALUE *q_q, prs_struct *ps, int depth);
247 BOOL reg_io_r_enum_val(char *desc, REG_R_ENUM_VALUE *r_q, prs_struct *ps, int depth);
248 BOOL make_reg_q_create_val(REG_Q_CREATE_VALUE *q_i, POLICY_HND *pol,
249 char *val_name, uint32 type,
250 BUFFER3 *val);
251 BOOL reg_io_q_create_val(char *desc, REG_Q_CREATE_VALUE *q_q, prs_struct *ps, int depth);
252 BOOL reg_io_r_create_val(char *desc, REG_R_CREATE_VALUE *r_q, prs_struct *ps, int depth);
253 BOOL make_reg_q_enum_key(REG_Q_ENUM_KEY *q_i, POLICY_HND *pol, uint32 key_idx);
254 BOOL reg_io_q_enum_key(char *desc, REG_Q_ENUM_KEY *q_q, prs_struct *ps, int depth);
255 BOOL reg_io_r_enum_key(char *desc, REG_R_ENUM_KEY *r_q, prs_struct *ps, int depth);
256 BOOL make_reg_q_open_entry(REG_Q_OPEN_ENTRY *r_q, POLICY_HND *pol,
257 char *key_name, uint32 access_mask);
258 BOOL reg_io_q_open_entry(char *desc, REG_Q_OPEN_ENTRY *r_q, prs_struct *ps, int depth);
259 BOOL make_reg_r_open_entry(REG_R_OPEN_ENTRY *r_r,
260 POLICY_HND *pol, uint32 status);
261 BOOL reg_io_r_open_entry(char *desc, REG_R_OPEN_ENTRY *r_r, prs_struct *ps, int depth);
262 BOOL make_reg_q_shutdown(REG_Q_SHUTDOWN *q_i,
263 const char *msg, uint32 timeout, uint16 flags);
264 BOOL reg_io_q_shutdown(char *desc, REG_Q_SHUTDOWN *q_q, prs_struct *ps, int depth);
265 BOOL reg_io_r_shutdown(char *desc, REG_R_SHUTDOWN *r_q, prs_struct *ps, int depth);
267 /*The following definitions come from rpc_parse/parse_rpc.c */
269 BOOL make_rpc_hdr(RPC_HDR * hdr, enum RPC_PKT_TYPE pkt_type, uint8 flags,
270 uint32 call_id, int frag_len, int auth_len);
271 BOOL smb_io_rpc_hdr(char *desc, RPC_HDR * rpc, prs_struct * ps, int depth);
272 BOOL is_complete_pdu(prs_struct * ps);
273 BOOL smb_io_rpc_hdr_nack(char *desc, RPC_HDR_NACK * rpc, prs_struct * ps,
274 int depth);
275 BOOL smb_io_rpc_hdr_fault(char *desc, RPC_HDR_FAULT * rpc, prs_struct * ps,
276 int depth);
277 BOOL make_rpc_hdr_rb(RPC_HDR_RB * rpc,
278 uint16 max_tsize, uint16 max_rsize, uint32 assoc_gid,
279 uint32 num_elements, uint16 context_id,
280 uint8 num_syntaxes, RPC_IFACE * abstract,
281 RPC_IFACE * transfer);
282 BOOL smb_io_rpc_hdr_rb(char *desc, RPC_HDR_RB * rpc, prs_struct * ps,
283 int depth);
284 BOOL make_rpc_hdr_ba(RPC_HDR_BA * rpc,
285 uint16 max_tsize, uint16 max_rsize, uint32 assoc_gid,
286 const char *pipe_addr,
287 uint8 num_results, uint16 result, uint16 reason,
288 RPC_IFACE * transfer);
289 BOOL smb_io_rpc_hdr_ba(char *desc, RPC_HDR_BA * rpc, prs_struct * ps,
290 int depth);
291 BOOL make_rpc_hdr_req(RPC_HDR_REQ * hdr, uint32 alloc_hint, uint16 vuid,
292 uint16 opnum);
293 BOOL smb_io_rpc_hdr_req(char *desc, RPC_HDR_REQ * rpc, prs_struct * ps,
294 int depth);
295 BOOL smb_io_rpc_hdr_resp(char *desc, RPC_HDR_RESP * rpc, prs_struct * ps,
296 int depth);
297 BOOL make_rpc_hdr_autha(RPC_HDR_AUTHA * rai,
298 uint16 max_tsize, uint16 max_rsize,
299 uint8 auth_type, uint8 auth_level,
300 uint8 stub_type_len);
301 BOOL smb_io_rpc_hdr_autha(char *desc, RPC_HDR_AUTHA * rai, prs_struct * ps,
302 int depth);
303 BOOL make_rpc_hdr_auth(RPC_HDR_AUTH * rai,
304 uint8 auth_type, uint8 auth_level,
305 uint8 stub_type_len, uint32 ptr);
306 BOOL smb_io_rpc_hdr_auth(char *desc, RPC_HDR_AUTH * rai, prs_struct * ps,
307 int depth);
308 BOOL make_rpc_auth_verifier(RPC_AUTH_VERIFIER * rav,
309 char *signature, uint32 msg_type);
310 BOOL smb_io_rpc_auth_verifier(char *desc, RPC_AUTH_VERIFIER * rav,
311 prs_struct * ps, int depth);
312 BOOL rpc_auth_verifier_chk(RPC_AUTH_VERIFIER * rav,
313 char *signature, uint32 msg_type);
315 /*The following definitions come from rpc_parse/parse_samr.c */
317 BOOL make_samr_q_close_hnd(SAMR_Q_CLOSE_HND *q_c, POLICY_HND *hnd);
318 BOOL samr_io_q_close_hnd(char *desc, SAMR_Q_CLOSE_HND *q_u, prs_struct *ps, int depth);
319 BOOL samr_io_r_close_hnd(char *desc, SAMR_R_CLOSE_HND *r_u, prs_struct *ps, int depth);
320 BOOL make_samr_q_lookup_domain(SAMR_Q_LOOKUP_DOMAIN *q_u,
321 POLICY_HND *pol, const char *dom_name);
322 BOOL samr_io_q_lookup_domain(char *desc, SAMR_Q_LOOKUP_DOMAIN *q_u, prs_struct *ps, int depth);
323 BOOL make_samr_r_lookup_domain(SAMR_R_LOOKUP_DOMAIN *r_u,
324 DOM_SID *dom_sid, uint32 status);
325 BOOL samr_io_r_lookup_domain(char *desc, SAMR_R_LOOKUP_DOMAIN *r_u, prs_struct *ps, int depth);
326 BOOL make_samr_q_unknown_2d(SAMR_Q_UNKNOWN_2D *q_u,
327 const POLICY_HND *dom_pol,
328 const DOM_SID *sid);
329 BOOL samr_io_q_unknown_2d(char *desc, SAMR_Q_UNKNOWN_2D *q_u, prs_struct *ps, int depth);
330 BOOL samr_io_r_unknown_2d(char *desc, SAMR_R_UNKNOWN_2D *r_u, prs_struct *ps, int depth);
331 BOOL make_samr_q_open_domain(SAMR_Q_OPEN_DOMAIN *q_u,
332 const POLICY_HND *connect_pol, uint32 flags,
333 const DOM_SID *sid);
334 BOOL samr_io_q_open_domain(char *desc, SAMR_Q_OPEN_DOMAIN *q_u, prs_struct *ps, int depth);
335 BOOL samr_io_r_open_domain(char *desc, SAMR_R_OPEN_DOMAIN *r_u, prs_struct *ps, int depth);
336 BOOL make_samr_q_get_usrdom_pwinfo(SAMR_Q_GET_USRDOM_PWINFO *q_u, POLICY_HND *user_pol);
337 BOOL samr_io_q_get_usrdom_pwinfo(char *desc, SAMR_Q_GET_USRDOM_PWINFO *q_u, prs_struct *ps, int depth);
338 BOOL make_samr_r_get_usrdom_pwinfo(SAMR_R_GET_USRDOM_PWINFO *q_u, uint32 status);
339 BOOL samr_io_r_get_usrdom_pwinfo(char *desc, SAMR_R_GET_USRDOM_PWINFO *r_u, prs_struct *ps, int depth);
340 BOOL make_samr_q_query_sec_obj(SAMR_Q_QUERY_SEC_OBJ *q_u,
341 const POLICY_HND *user_pol, uint32 sec_info);
342 BOOL samr_io_q_query_sec_obj(char *desc, SAMR_Q_QUERY_SEC_OBJ *q_u, prs_struct *ps, int depth);
343 BOOL make_samr_q_query_dom_info(SAMR_Q_QUERY_DOMAIN_INFO *q_u,
344 POLICY_HND *domain_pol, uint16 switch_value);
345 BOOL samr_io_q_query_dom_info(char *desc, SAMR_Q_QUERY_DOMAIN_INFO *q_u, prs_struct *ps, int depth);
346 BOOL make_unk_info3(SAM_UNK_INFO_3 *u_3);
347 BOOL make_unk_info6(SAM_UNK_INFO_6 *u_6);
348 BOOL make_unk_info7(SAM_UNK_INFO_7 *u_7);
349 BOOL make_unk_info2(SAM_UNK_INFO_2 *u_2, char *domain, char *server);
350 BOOL make_unk_info1(SAM_UNK_INFO_1 *u_1);
351 BOOL make_samr_r_query_dom_info(SAMR_R_QUERY_DOMAIN_INFO *r_u,
352 uint16 switch_value, SAM_UNK_CTR *ctr,
353 uint32 status);
354 BOOL samr_io_r_query_dom_info(char *desc, SAMR_R_QUERY_DOMAIN_INFO *r_u, prs_struct *ps, int depth);
355 BOOL samr_io_r_query_sec_obj(char *desc, SAMR_R_QUERY_SEC_OBJ *r_u, prs_struct *ps, int depth);
356 BOOL make_sam_entry(SAM_ENTRY *sam, uint32 len_sam_name, uint32 rid);
357 BOOL make_samr_q_enum_dom_users(SAMR_Q_ENUM_DOM_USERS *q_e, POLICY_HND *pol,
358 uint32 start_idx,
359 uint16 acb_mask, uint16 unk_1, uint32 size);
360 BOOL samr_io_q_enum_dom_users(char *desc, SAMR_Q_ENUM_DOM_USERS *q_e, prs_struct *ps, int depth);
361 BOOL make_samr_r_enum_dom_users(SAMR_R_ENUM_DOM_USERS *r_u,
362 uint32 next_idx,
363 uint32 num_sam_entries);
364 BOOL samr_io_r_enum_dom_users(char *desc, SAMR_R_ENUM_DOM_USERS *r_u, prs_struct *ps, int depth);
365 BOOL make_samr_q_query_dispinfo(SAMR_Q_QUERY_DISPINFO *q_e, POLICY_HND *pol,
366 uint16 switch_level, uint32 start_idx,
367 uint32 max_entries);
368 BOOL samr_io_q_query_dispinfo(char *desc, SAMR_Q_QUERY_DISPINFO *q_e, prs_struct *ps, int depth);
369 BOOL make_sam_dispinfo_1(SAM_DISPINFO_1 *sam, uint32 *num_entries,
370 uint32 *data_size, uint32 start_idx,
371 SAM_USER_INFO_21 pass[MAX_SAM_ENTRIES]);
372 BOOL make_sam_dispinfo_2(SAM_DISPINFO_2 *sam, uint32 *num_entries,
373 uint32 *data_size, uint32 start_idx,
374 SAM_USER_INFO_21 pass[MAX_SAM_ENTRIES]);
375 BOOL make_sam_dispinfo_3(SAM_DISPINFO_3 *sam, uint32 *num_entries,
376 uint32 *data_size, uint32 start_idx,
377 DOMAIN_GRP *grp);
378 BOOL make_sam_dispinfo_4(SAM_DISPINFO_4 *sam, uint32 *num_entries,
379 uint32 *data_size, uint32 start_idx,
380 SAM_USER_INFO_21 pass[MAX_SAM_ENTRIES]);
381 BOOL make_sam_dispinfo_5(SAM_DISPINFO_5 *sam, uint32 *num_entries,
382 uint32 *data_size, uint32 start_idx,
383 DOMAIN_GRP *grp);
384 BOOL make_samr_r_query_dispinfo(SAMR_R_QUERY_DISPINFO *r_u,
385 uint32 num_entries, uint32 data_size,
386 uint16 switch_level, SAM_DISPINFO_CTR *ctr,
387 uint32 status);
388 BOOL samr_io_r_query_dispinfo(char *desc, SAMR_R_QUERY_DISPINFO *r_u, prs_struct *ps, int depth);
389 BOOL make_samr_q_open_group(SAMR_Q_OPEN_GROUP *q_c,
390 const POLICY_HND *hnd,
391 uint32 access_mask, uint32 rid);
392 BOOL samr_io_q_open_group(char *desc, SAMR_Q_OPEN_GROUP *q_u, prs_struct *ps, int depth);
393 BOOL samr_io_r_open_group(char *desc, SAMR_R_OPEN_GROUP *r_u, prs_struct *ps, int depth);
394 BOOL make_samr_group_info1(GROUP_INFO1 *gr1,
395 char *acct_name, char *acct_desc,
396 uint32 num_members);
397 BOOL samr_io_group_info1(char *desc, GROUP_INFO1 *gr1, prs_struct *ps, int depth);
398 BOOL make_samr_group_info4(GROUP_INFO4 *gr4, const char *acct_desc);
399 BOOL samr_io_group_info4(char *desc, GROUP_INFO4 *gr4, prs_struct *ps, int depth);
400 BOOL samr_group_info_ctr(char *desc, GROUP_INFO_CTR *ctr, prs_struct *ps, int depth);
401 BOOL make_samr_q_create_dom_group(SAMR_Q_CREATE_DOM_GROUP *q_e,
402 POLICY_HND *pol,
403 const char *acct_desc);
404 BOOL samr_io_q_create_dom_group(char *desc, SAMR_Q_CREATE_DOM_GROUP *q_e, prs_struct *ps, int depth);
405 BOOL samr_io_r_create_dom_group(char *desc, SAMR_R_CREATE_DOM_GROUP *r_u, prs_struct *ps, int depth);
406 BOOL make_samr_q_delete_dom_group(SAMR_Q_DELETE_DOM_GROUP *q_c, POLICY_HND *hnd);
407 BOOL samr_io_q_delete_dom_group(char *desc, SAMR_Q_DELETE_DOM_GROUP *q_u, prs_struct *ps, int depth);
408 BOOL samr_io_r_delete_dom_group(char *desc, SAMR_R_DELETE_DOM_GROUP *r_u, prs_struct *ps, int depth);
409 BOOL make_samr_q_del_groupmem(SAMR_Q_DEL_GROUPMEM *q_e,
410 POLICY_HND *pol,
411 uint32 rid);
412 BOOL samr_io_q_del_groupmem(char *desc, SAMR_Q_DEL_GROUPMEM *q_e, prs_struct *ps, int depth);
413 BOOL make_samr_r_del_groupmem(SAMR_R_DEL_GROUPMEM *r_u, POLICY_HND *pol,
414 uint32 status);
415 BOOL samr_io_r_del_groupmem(char *desc, SAMR_R_DEL_GROUPMEM *r_u, prs_struct *ps, int depth);
416 BOOL make_samr_q_add_groupmem(SAMR_Q_ADD_GROUPMEM *q_e,
417 POLICY_HND *pol,
418 uint32 rid);
419 BOOL samr_io_q_add_groupmem(char *desc, SAMR_Q_ADD_GROUPMEM *q_e, prs_struct *ps, int depth);
420 BOOL make_samr_r_add_groupmem(SAMR_R_ADD_GROUPMEM *r_u, POLICY_HND *pol,
421 uint32 status);
422 BOOL samr_io_r_add_groupmem(char *desc, SAMR_R_ADD_GROUPMEM *r_u, prs_struct *ps, int depth);
423 BOOL make_samr_q_set_groupinfo(SAMR_Q_SET_GROUPINFO *q_e,
424 POLICY_HND *pol, GROUP_INFO_CTR *ctr);
425 BOOL samr_io_q_set_groupinfo(char *desc, SAMR_Q_SET_GROUPINFO *q_e, prs_struct *ps, int depth);
426 BOOL make_samr_r_set_groupinfo(SAMR_R_SET_GROUPINFO *r_u,
427 uint32 status);
428 BOOL samr_io_r_set_groupinfo(char *desc, SAMR_R_SET_GROUPINFO *r_u, prs_struct *ps, int depth);
429 BOOL make_samr_q_query_groupinfo(SAMR_Q_QUERY_GROUPINFO *q_e,
430 POLICY_HND *pol,
431 uint16 switch_level);
432 BOOL samr_io_q_query_groupinfo(char *desc, SAMR_Q_QUERY_GROUPINFO *q_e, prs_struct *ps, int depth);
433 BOOL make_samr_r_query_groupinfo(SAMR_R_QUERY_GROUPINFO *r_u, GROUP_INFO_CTR *ctr,
434 uint32 status);
435 BOOL samr_io_r_query_groupinfo(char *desc, SAMR_R_QUERY_GROUPINFO *r_u, prs_struct *ps, int depth);
436 BOOL make_samr_q_query_groupmem(SAMR_Q_QUERY_GROUPMEM *q_c, POLICY_HND *hnd);
437 BOOL samr_io_q_query_groupmem(char *desc, SAMR_Q_QUERY_GROUPMEM *q_u, prs_struct *ps, int depth);
438 BOOL make_samr_r_query_groupmem(SAMR_R_QUERY_GROUPMEM *r_u,
439 uint32 num_entries, uint32 *rid, uint32 *attr, uint32 status);
440 BOOL samr_io_r_query_groupmem(char *desc, SAMR_R_QUERY_GROUPMEM *r_u, prs_struct *ps, int depth);
441 void samr_free_r_query_groupmem(SAMR_R_QUERY_GROUPMEM *r_u);
442 BOOL make_samr_q_query_usergroups(SAMR_Q_QUERY_USERGROUPS *q_u,
443 POLICY_HND *hnd);
444 BOOL samr_io_q_query_usergroups(char *desc, SAMR_Q_QUERY_USERGROUPS *q_u, prs_struct *ps, int depth);
445 BOOL make_samr_r_query_usergroups(SAMR_R_QUERY_USERGROUPS *r_u,
446 uint32 num_gids, DOM_GID *gid, uint32 status);
447 BOOL samr_io_gids(char *desc, uint32 *num_gids, DOM_GID **gid, prs_struct *ps, int depth);
448 BOOL samr_io_r_query_usergroups(char *desc, SAMR_R_QUERY_USERGROUPS *r_u, prs_struct *ps, int depth);
449 BOOL make_samr_q_enum_domains(SAMR_Q_ENUM_DOMAINS *q_e,
450 const POLICY_HND *pol,
451 uint32 start_idx, uint32 size);
452 BOOL samr_io_q_enum_domains(char *desc, SAMR_Q_ENUM_DOMAINS *q_e, prs_struct *ps, int depth);
453 BOOL make_samr_r_enum_domains(SAMR_R_ENUM_DOMAINS *r_u,
454 uint32 next_idx, uint32 num_sam_entries);
455 BOOL samr_io_r_enum_domains(char *desc, SAMR_R_ENUM_DOMAINS *r_u, prs_struct *ps, int depth);
456 BOOL make_samr_q_enum_dom_groups(SAMR_Q_ENUM_DOM_GROUPS *q_e,
457 const POLICY_HND *pol,
458 uint32 start_idx, uint32 size);
459 BOOL samr_io_q_enum_dom_groups(char *desc, SAMR_Q_ENUM_DOM_GROUPS *q_e, prs_struct *ps, int depth);
460 BOOL make_samr_r_enum_dom_groups(SAMR_R_ENUM_DOM_GROUPS *r_u,
461 uint32 next_idx, uint32 num_sam_entries);
462 BOOL samr_io_r_enum_dom_groups(char *desc, SAMR_R_ENUM_DOM_GROUPS *r_u, prs_struct *ps, int depth);
463 BOOL make_samr_q_enum_dom_aliases(SAMR_Q_ENUM_DOM_ALIASES *q_e, POLICY_HND *pol,
464 uint32 start_idx, uint32 size);
465 BOOL samr_io_q_enum_dom_aliases(char *desc, SAMR_Q_ENUM_DOM_ALIASES *q_e, prs_struct *ps, int depth);
466 BOOL make_samr_r_enum_dom_aliases(SAMR_R_ENUM_DOM_ALIASES *r_u,
467 uint32 next_idx,
468 uint32 num_sam_entries);
469 BOOL samr_io_r_enum_dom_aliases(char *desc, SAMR_R_ENUM_DOM_ALIASES *r_u, prs_struct *ps, int depth);
470 BOOL make_samr_alias_info3(ALIAS_INFO3 *al3, const char *acct_desc);
471 BOOL samr_io_alias_info3(char *desc, ALIAS_INFO3 *al3, prs_struct *ps, int depth);
472 BOOL samr_alias_info_ctr(char *desc, ALIAS_INFO_CTR *ctr, prs_struct *ps, int depth);
473 BOOL make_samr_q_query_aliasinfo(SAMR_Q_QUERY_ALIASINFO *q_e,
474 const POLICY_HND *pol, uint16 switch_level);
475 BOOL samr_io_q_query_aliasinfo(char *desc, SAMR_Q_QUERY_ALIASINFO *q_e, prs_struct *ps, int depth);
476 BOOL make_samr_r_query_aliasinfo(SAMR_R_QUERY_ALIASINFO *r_u,
477 ALIAS_INFO_CTR *ctr, uint32 status);
478 BOOL samr_io_r_query_aliasinfo(char *desc, SAMR_R_QUERY_ALIASINFO *r_u, prs_struct *ps, int depth);
479 BOOL make_samr_q_set_aliasinfo(SAMR_Q_SET_ALIASINFO *q_u,
480 const POLICY_HND *hnd,
481 ALIAS_INFO_CTR *ctr);
482 BOOL samr_io_q_set_aliasinfo(char *desc, SAMR_Q_SET_ALIASINFO *q_u, prs_struct *ps, int depth);
483 BOOL samr_io_r_set_aliasinfo(char *desc, SAMR_R_SET_ALIASINFO *r_u, prs_struct *ps, int depth);
484 BOOL make_samr_q_query_useraliases(SAMR_Q_QUERY_USERALIASES *q_u,
485 const POLICY_HND *hnd,
486 uint32 num_sids,
487 uint32 *ptr_sid, DOM_SID2 *sid);
488 BOOL samr_io_q_query_useraliases(char *desc, SAMR_Q_QUERY_USERALIASES *q_u, prs_struct *ps, int depth);
489 void samr_free_q_query_useraliases(SAMR_Q_QUERY_USERALIASES *q_u);
490 BOOL make_samr_r_query_useraliases(SAMR_R_QUERY_USERALIASES *r_u,
491 uint32 num_rids, uint32 *rid, uint32 status);
492 BOOL samr_io_rids(char *desc, uint32 *num_rids, uint32 **rid, prs_struct *ps, int depth);
493 BOOL samr_io_r_query_useraliases(char *desc, SAMR_R_QUERY_USERALIASES *r_u, prs_struct *ps, int depth);
494 BOOL make_samr_q_open_alias(SAMR_Q_OPEN_ALIAS *q_u, const POLICY_HND *pol,
495 uint32 unknown_0, uint32 rid);
496 BOOL samr_io_q_open_alias(char *desc, SAMR_Q_OPEN_ALIAS *q_u, prs_struct *ps, int depth);
497 BOOL samr_io_r_open_alias(char *desc, SAMR_R_OPEN_ALIAS *r_u, prs_struct *ps, int depth);
498 BOOL make_samr_q_lookup_rids(SAMR_Q_LOOKUP_RIDS *q_u,
499 const POLICY_HND *pol, uint32 flags,
500 uint32 num_rids, const uint32 *rid);
501 BOOL samr_io_q_lookup_rids(char *desc, SAMR_Q_LOOKUP_RIDS *q_u, prs_struct *ps, int depth);
502 void samr_free_q_lookup_rids(SAMR_Q_LOOKUP_RIDS *q_u);
503 BOOL make_samr_r_lookup_rids(SAMR_R_LOOKUP_RIDS *r_u,
504 uint32 num_names, UNIHDR *hdr_name, UNISTR2 *uni_name,
505 uint32 *type);
506 BOOL samr_io_r_lookup_rids(char *desc, SAMR_R_LOOKUP_RIDS *r_u, prs_struct *ps, int depth);
507 void samr_free_r_lookup_rids(SAMR_R_LOOKUP_RIDS *r_u);
508 BOOL make_samr_q_delete_alias(SAMR_Q_DELETE_DOM_ALIAS *q_u, POLICY_HND *hnd);
509 BOOL samr_io_q_delete_alias(char *desc, SAMR_Q_DELETE_DOM_ALIAS *q_u, prs_struct *ps, int depth);
510 BOOL samr_io_r_delete_alias(char *desc, SAMR_R_DELETE_DOM_ALIAS *r_u, prs_struct *ps, int depth);
511 BOOL make_samr_q_create_dom_alias(SAMR_Q_CREATE_DOM_ALIAS *q_u, POLICY_HND *hnd,
512 const char *acct_desc);
513 BOOL samr_io_q_create_dom_alias(char *desc, SAMR_Q_CREATE_DOM_ALIAS *q_u, prs_struct *ps, int depth);
514 BOOL samr_io_r_create_dom_alias(char *desc, SAMR_R_CREATE_DOM_ALIAS *r_u, prs_struct *ps, int depth);
515 BOOL make_samr_q_add_aliasmem(SAMR_Q_ADD_ALIASMEM *q_u, POLICY_HND *hnd,
516 DOM_SID *sid);
517 BOOL samr_io_q_add_aliasmem(char *desc, SAMR_Q_ADD_ALIASMEM *q_u, prs_struct *ps, int depth);
518 BOOL samr_io_r_add_aliasmem(char *desc, SAMR_R_ADD_ALIASMEM *r_u, prs_struct *ps, int depth);
519 BOOL make_samr_q_del_aliasmem(SAMR_Q_DEL_ALIASMEM *q_u, POLICY_HND *hnd,
520 DOM_SID *sid);
521 BOOL samr_io_q_del_aliasmem(char *desc, SAMR_Q_DEL_ALIASMEM *q_u, prs_struct *ps, int depth);
522 BOOL samr_io_r_del_aliasmem(char *desc, SAMR_R_DEL_ALIASMEM *r_u, prs_struct *ps, int depth);
523 BOOL make_samr_q_delete_dom_alias(SAMR_Q_DELETE_DOM_ALIAS *q_c, POLICY_HND *hnd);
524 BOOL samr_io_q_delete_dom_alias(char *desc, SAMR_Q_DELETE_DOM_ALIAS *q_u, prs_struct *ps, int depth);
525 BOOL make_samr_r_delete_dom_alias(SAMR_R_DELETE_DOM_ALIAS *r_u,
526 uint32 status);
527 BOOL samr_io_r_delete_dom_alias(char *desc, SAMR_R_DELETE_DOM_ALIAS *r_u, prs_struct *ps, int depth);
528 BOOL make_samr_q_query_aliasmem(SAMR_Q_QUERY_ALIASMEM *q_c,
529 const POLICY_HND *hnd);
530 BOOL samr_io_q_query_aliasmem(char *desc, SAMR_Q_QUERY_ALIASMEM *q_u, prs_struct *ps, int depth);
531 BOOL make_samr_r_query_aliasmem(SAMR_R_QUERY_ALIASMEM *r_u,
532 uint32 num_sids, DOM_SID2 *sid, uint32 status);
533 BOOL samr_io_r_query_aliasmem(char *desc, SAMR_R_QUERY_ALIASMEM *r_u, prs_struct *ps, int depth);
534 BOOL make_samr_q_lookup_names(SAMR_Q_LOOKUP_NAMES *q_u,
535 const POLICY_HND *pol, uint32 flags,
536 uint32 num_names, char **name);
537 BOOL samr_io_q_lookup_names(char *desc, SAMR_Q_LOOKUP_NAMES *q_u, prs_struct *ps, int depth);
538 void samr_free_q_lookup_names(SAMR_Q_LOOKUP_NAMES *q_l);
539 BOOL make_samr_r_lookup_names(SAMR_R_LOOKUP_NAMES *r_u,
540 uint32 num_rids,
541 const uint32 *rid, const uint32 *type,
542 uint32 status);
543 BOOL samr_io_r_lookup_names(char *desc, SAMR_R_LOOKUP_NAMES *r_u, prs_struct *ps, int depth);
544 void samr_free_r_lookup_names(SAMR_R_LOOKUP_NAMES *r_l);
545 BOOL make_samr_q_delete_dom_user(SAMR_Q_DELETE_DOM_USER *q_c, POLICY_HND *hnd);
546 BOOL samr_io_q_delete_dom_user(char *desc, SAMR_Q_DELETE_DOM_USER *q_u, prs_struct *ps, int depth);
547 BOOL samr_io_r_delete_dom_user(char *desc, SAMR_R_DELETE_DOM_USER *r_u, prs_struct *ps, int depth);
548 BOOL make_samr_q_open_user(SAMR_Q_OPEN_USER *q_u,
549 const POLICY_HND *pol,
550 uint32 access_mask, uint32 rid);
551 BOOL samr_io_q_open_user(char *desc, SAMR_Q_OPEN_USER *q_u, prs_struct *ps, int depth);
552 BOOL samr_io_r_open_user(char *desc, SAMR_R_OPEN_USER *r_u, prs_struct *ps, int depth);
553 BOOL make_samr_q_create_user(SAMR_Q_CREATE_USER *q_u,
554 POLICY_HND *pol,
555 const char *name,
556 uint16 acb_info, uint32 access_mask);
557 BOOL samr_io_q_create_user(char *desc, SAMR_Q_CREATE_USER *q_u, prs_struct *ps, int depth);
558 BOOL samr_io_r_create_user(char *desc, SAMR_R_CREATE_USER *r_u, prs_struct *ps, int depth);
559 BOOL make_samr_q_query_userinfo(SAMR_Q_QUERY_USERINFO *q_u,
560 POLICY_HND *hnd, uint16 switch_value);
561 BOOL samr_io_q_query_userinfo(char *desc, SAMR_Q_QUERY_USERINFO *q_u, prs_struct *ps, int depth);
562 BOOL make_sam_user_info12(SAM_USER_INFO_12 *usr,
563 uint16 acb_info,
564 const uint8 lm_pwd[16],
565 const uint8 nt_pwd[16]);
566 BOOL sam_io_user_info12(char *desc, SAM_USER_INFO_12 *u, prs_struct *ps, int depth);
567 BOOL make_sam_user_info10(SAM_USER_INFO_10 *usr,
568 uint32 acb_info);
569 BOOL sam_io_user_info10(char *desc, SAM_USER_INFO_10 *usr, prs_struct *ps, int depth);
570 BOOL make_sam_user_info11(SAM_USER_INFO_11 *usr,
571 NTTIME *expiry,
572 char *mach_acct,
573 uint32 rid_user,
574 uint32 rid_group,
575 uint16 acct_ctrl);
576 BOOL sam_io_user_info11(char *desc, SAM_USER_INFO_11 *usr, prs_struct *ps, int depth);
577 BOOL make_sam_user_info24(SAM_USER_INFO_24 *usr,
578 const char newpass[516], uint16 passlen);
579 BOOL make_sam_user_info23W(SAM_USER_INFO_23 *usr,
581 const NTTIME *logon_time, /* all zeros */
582 const NTTIME *logoff_time, /* all zeros */
583 const NTTIME *kickoff_time, /* all zeros */
584 const NTTIME *pass_last_set_time, /* all zeros */
585 const NTTIME *pass_can_change_time, /* all zeros */
586 const NTTIME *pass_must_change_time, /* all zeros */
588 const UNISTR2 *user_name,
589 const UNISTR2 *full_name,
590 const UNISTR2 *home_dir,
591 const UNISTR2 *dir_drive,
592 const UNISTR2 *log_scr,
593 const UNISTR2 *prof_path,
594 const UNISTR2 *desc,
595 const UNISTR2 *wkstas,
596 const UNISTR2 *unk_str,
597 const UNISTR2 *mung_dial,
599 uint32 user_rid, /* 0x0000 0000 */
600 uint32 group_rid,
601 uint16 acb_info,
603 uint32 unknown_3,
604 uint16 logon_divs,
605 LOGON_HRS *hrs,
606 uint32 unknown_5,
607 char newpass[516]
608 #if 0
609 , uint32 unknown_6
610 #endif
612 BOOL make_sam_user_info23A(SAM_USER_INFO_23 *usr,
614 NTTIME *logon_time, /* all zeros */
615 NTTIME *logoff_time, /* all zeros */
616 NTTIME *kickoff_time, /* all zeros */
617 NTTIME *pass_last_set_time, /* all zeros */
618 NTTIME *pass_can_change_time, /* all zeros */
619 NTTIME *pass_must_change_time, /* all zeros */
621 char *user_name, /* NULL */
622 char *full_name,
623 char *home_dir,
624 char *dir_drive,
625 char *log_scr,
626 char *prof_path,
627 char *desc,
628 char *wkstas,
629 char *unk_str,
630 char *mung_dial,
632 uint32 user_rid, /* 0x0000 0000 */
633 uint32 group_rid,
634 uint16 acb_info,
636 uint32 unknown_3,
637 uint16 logon_divs,
638 LOGON_HRS *hrs,
639 uint32 unknown_5,
640 char newpass[516]
641 #if 0
642 , uint32 unknown_6
643 #endif
645 BOOL make_sam_user_info21W(SAM_USER_INFO_21 *usr,
647 const NTTIME *logon_time,
648 const NTTIME *logoff_time,
649 const NTTIME *kickoff_time,
650 const NTTIME *pass_last_set_time,
651 const NTTIME *pass_can_change_time,
652 const NTTIME *pass_must_change_time,
654 const UNISTR2 *user_name,
655 const UNISTR2 *full_name,
656 const UNISTR2 *home_dir,
657 const UNISTR2 *dir_drive,
658 const UNISTR2 *log_scr,
659 const UNISTR2 *prof_path,
660 const UNISTR2 *desc,
661 const UNISTR2 *wkstas,
662 const UNISTR2 *unk_str,
663 const UNISTR2 *mung_dial,
665 const uchar lm_pwd[16],
666 const uchar nt_pwd[16],
668 uint32 user_rid,
669 uint32 group_rid,
670 uint16 acb_info,
672 uint32 unknown_3,
673 uint16 logon_divs,
674 const LOGON_HRS *hrs,
675 uint32 unknown_5,
676 uint32 unknown_6);
677 BOOL make_sam_user_info21A(SAM_USER_INFO_21 *usr,
679 NTTIME *logon_time,
680 NTTIME *logoff_time,
681 NTTIME *kickoff_time,
682 NTTIME *pass_last_set_time,
683 NTTIME *pass_can_change_time,
684 NTTIME *pass_must_change_time,
686 char *user_name,
687 char *full_name,
688 char *home_dir,
689 char *dir_drive,
690 char *log_scr,
691 char *prof_path,
692 char *desc,
693 char *wkstas,
694 char *unk_str,
695 char *mung_dial,
697 uint32 user_rid,
698 uint32 group_rid,
699 uint16 acb_info,
701 uint32 unknown_3,
702 uint16 logon_divs,
703 LOGON_HRS *hrs,
704 uint32 unknown_5,
705 uint32 unknown_6);
706 BOOL sam_io_user_info21(char *desc, SAM_USER_INFO_21 *usr, prs_struct *ps, int depth);
707 uint32 make_samr_userinfo_ctr_usr21(SAM_USERINFO_CTR *ctr,
708 uint16 switch_value,
709 const SAM_USER_INFO_21 *usr);
710 BOOL make_samr_userinfo_ctr(SAM_USERINFO_CTR *ctr, const uchar *sess_key,
711 uint16 switch_value, void *info);
712 BOOL samr_io_userinfo_ctr(char *desc, SAM_USERINFO_CTR *ctr, prs_struct *ps, int depth);
713 void free_samr_userinfo_ctr(SAM_USERINFO_CTR *ctr);
714 BOOL make_samr_r_query_userinfo(SAMR_R_QUERY_USERINFO *r_u,
715 SAM_USERINFO_CTR *ctr, uint32 status);
716 BOOL samr_io_r_query_userinfo(char *desc, SAMR_R_QUERY_USERINFO *r_u, prs_struct *ps, int depth);
717 BOOL make_samr_q_set_userinfo(SAMR_Q_SET_USERINFO *q_u,
718 POLICY_HND *hnd,
719 uint16 switch_value, void *info);
720 BOOL samr_io_q_set_userinfo(char *desc, SAMR_Q_SET_USERINFO *q_u, prs_struct *ps, int depth);
721 void free_samr_q_set_userinfo(SAMR_Q_SET_USERINFO *q_u);
722 BOOL make_samr_r_set_userinfo(SAMR_R_SET_USERINFO *r_u, uint32 status);
723 BOOL samr_io_r_set_userinfo(char *desc, SAMR_R_SET_USERINFO *r_u, prs_struct *ps, int depth);
724 BOOL make_samr_q_set_userinfo2(SAMR_Q_SET_USERINFO2 *q_u,
725 POLICY_HND *hnd,
726 uint16 switch_value,
727 SAM_USERINFO_CTR *ctr);
728 BOOL samr_io_q_set_userinfo2(char *desc, SAMR_Q_SET_USERINFO2 *q_u, prs_struct *ps, int depth);
729 void free_samr_q_set_userinfo2(SAMR_Q_SET_USERINFO2 *q_u);
730 BOOL make_samr_r_set_userinfo2(SAMR_R_SET_USERINFO2 *r_u,
731 uint32 status);
732 BOOL samr_io_r_set_userinfo2(char *desc, SAMR_R_SET_USERINFO2 *r_u, prs_struct *ps, int depth);
733 BOOL make_samr_q_connect(SAMR_Q_CONNECT *q_u,
734 const char *srv_name, uint32 access_mask);
735 BOOL samr_io_q_connect(char *desc, SAMR_Q_CONNECT *q_u, prs_struct *ps, int depth);
736 BOOL samr_io_r_connect(char *desc, SAMR_R_CONNECT *r_u, prs_struct *ps, int depth);
737 BOOL make_samr_q_connect_anon(SAMR_Q_CONNECT_ANON *q_u);
738 BOOL samr_io_q_connect_anon(char *desc, SAMR_Q_CONNECT_ANON *q_u, prs_struct *ps, int depth);
739 BOOL samr_io_r_connect_anon(char *desc, SAMR_R_CONNECT_ANON *r_u, prs_struct *ps, int depth);
740 BOOL make_samr_q_get_dom_pwinfo(SAMR_Q_GET_DOM_PWINFO *q_u, const char *srv_name);
741 BOOL samr_io_q_get_dom_pwinfo(char *desc, SAMR_Q_GET_DOM_PWINFO *q_u, prs_struct *ps, int depth);
742 BOOL samr_io_r_get_dom_pwinfo(char *desc, SAMR_R_GET_DOM_PWINFO *r_u, prs_struct *ps, int depth);
743 BOOL make_enc_passwd(SAMR_ENC_PASSWD *pwd, const char pass[512]);
744 BOOL samr_io_enc_passwd(char *desc, SAMR_ENC_PASSWD *pwd, prs_struct *ps, int depth);
745 BOOL make_enc_hash(SAMR_ENC_HASH *hsh, const uchar hash[16]);
746 BOOL samr_io_enc_hash(char *desc, SAMR_ENC_HASH *hsh, prs_struct *ps, int depth);
747 BOOL make_samr_q_chgpasswd_user(SAMR_Q_CHGPASSWD_USER *q_u,
748 const char *dest_host, const char *user_name,
749 const char nt_newpass[516],
750 const uchar nt_oldhash[16],
751 const char lm_newpass[516],
752 const uchar lm_oldhash[16]);
753 BOOL samr_io_q_chgpasswd_user(char *desc, SAMR_Q_CHGPASSWD_USER *q_u, prs_struct *ps, int depth);
754 BOOL make_samr_r_chgpasswd_user(SAMR_R_CHGPASSWD_USER *r_u, uint32 status);
755 BOOL samr_io_r_chgpasswd_user(char *desc, SAMR_R_CHGPASSWD_USER *r_u, prs_struct *ps, int depth);
757 /*The following definitions come from rpc_parse/parse_sec.c */
759 BOOL make_sec_access(SEC_ACCESS *t, uint32 mask);
760 BOOL sec_io_access(char *desc, SEC_ACCESS *t, prs_struct *ps, int depth);
761 BOOL make_sec_ace(SEC_ACE *t, DOM_SID *sid, uint8 type, SEC_ACCESS mask, uint8 flag);
762 BOOL sec_io_ace(char *desc, SEC_ACE *t, prs_struct *ps, int depth);
763 BOOL make_sec_acl(SEC_ACL *t, uint16 revision, int num_aces, SEC_ACE *ace);
764 void free_sec_acl(SEC_ACL *t);
765 BOOL sec_io_acl(char *desc, SEC_ACL *t, prs_struct *ps, int depth);
766 int make_sec_desc(SEC_DESC *t, uint16 revision, uint16 type,
767 DOM_SID *owner_sid, DOM_SID *grp_sid,
768 SEC_ACL *sacl, SEC_ACL *dacl);
769 void free_sec_desc(SEC_DESC *t);
770 BOOL sec_io_desc(char *desc, SEC_DESC *t, prs_struct *ps, int depth);
771 BOOL make_sec_desc_buf(SEC_DESC_BUF *buf, int len, SEC_DESC *data);
772 void free_sec_desc_buf(SEC_DESC_BUF *buf);
773 BOOL sec_io_desc_buf(char *desc, SEC_DESC_BUF *sec, prs_struct *ps, int depth);
775 /*The following definitions come from rpc_parse/parse_spoolss.c */
777 BOOL make_systemtime(SYSTEMTIME *systime, struct tm *unixtime);
778 BOOL smb_io_notify_info_data_strings(char *desc,SPOOL_NOTIFY_INFO_DATA *data,
779 prs_struct *ps, int depth);
780 BOOL spoolss_io_r_open_printer_ex(char *desc, SPOOL_R_OPEN_PRINTER_EX *r_u, prs_struct *ps, int depth);
781 BOOL make_spoolss_q_open_printer_ex(SPOOL_Q_OPEN_PRINTER_EX *q_u,
782 const char *printername,
783 uint32 cbbuf, uint32 devmod, uint32 des_access,
784 const char *station,
785 const char *username);
786 BOOL spoolss_io_q_open_printer_ex(char *desc, SPOOL_Q_OPEN_PRINTER_EX *q_u, prs_struct *ps, int depth);
787 BOOL make_spoolss_q_getprinterdata(SPOOL_Q_GETPRINTERDATA *q_u,
788 POLICY_HND *handle,
789 char *valuename,
790 uint32 size);
791 BOOL spoolss_io_q_getprinterdata(char *desc, SPOOL_Q_GETPRINTERDATA *q_u, prs_struct *ps, int depth);
792 BOOL spoolss_io_r_getprinterdata(char *desc, SPOOL_R_GETPRINTERDATA *r_u, prs_struct *ps, int depth);
793 BOOL make_spoolss_q_closeprinter(SPOOL_Q_CLOSEPRINTER *q_u, POLICY_HND *hnd);
794 BOOL spoolss_io_q_closeprinter(char *desc, SPOOL_Q_CLOSEPRINTER *q_u, prs_struct *ps, int depth);
795 BOOL spoolss_io_r_closeprinter(char *desc, SPOOL_R_CLOSEPRINTER *r_u, prs_struct *ps, int depth);
796 BOOL spoolss_io_q_startdocprinter(char *desc, SPOOL_Q_STARTDOCPRINTER *q_u, prs_struct *ps, int depth);
797 BOOL spoolss_io_r_startdocprinter(char *desc, SPOOL_R_STARTDOCPRINTER *r_u, prs_struct *ps, int depth);
798 BOOL spoolss_io_q_enddocprinter(char *desc, SPOOL_Q_ENDDOCPRINTER *q_u, prs_struct *ps, int depth);
799 BOOL spoolss_io_r_enddocprinter(char *desc, SPOOL_R_ENDDOCPRINTER *r_u, prs_struct *ps, int depth);
800 BOOL spoolss_io_q_startpageprinter(char *desc, SPOOL_Q_STARTPAGEPRINTER *q_u, prs_struct *ps, int depth);
801 BOOL spoolss_io_r_startpageprinter(char *desc, SPOOL_R_STARTPAGEPRINTER *r_u, prs_struct *ps, int depth);
802 BOOL spoolss_io_q_endpageprinter(char *desc, SPOOL_Q_ENDPAGEPRINTER *q_u, prs_struct *ps, int depth);
803 BOOL spoolss_io_r_endpageprinter(char *desc, SPOOL_R_ENDPAGEPRINTER *r_u, prs_struct *ps, int depth);
804 BOOL spoolss_io_q_writeprinter(char *desc, SPOOL_Q_WRITEPRINTER *q_u, prs_struct *ps, int depth);
805 BOOL spoolss_io_r_writeprinter(char *desc, SPOOL_R_WRITEPRINTER *r_u, prs_struct *ps, int depth);
806 BOOL spoolss_io_q_rffpcnex(char *desc, SPOOL_Q_RFFPCNEX *q_u,
807 prs_struct *ps, int depth);
808 BOOL spoolss_io_r_rffpcnex(char *desc, SPOOL_R_RFFPCNEX *r_u,
809 prs_struct *ps, int depth);
810 BOOL spoolss_io_q_rfnpcnex(char *desc, SPOOL_Q_RFNPCNEX *q_u,
811 prs_struct *ps, int depth);
812 BOOL spoolss_io_r_rfnpcnex(char *desc,
813 SPOOL_R_RFNPCNEX *r_u,
814 prs_struct *ps, int depth);
815 BOOL spoolss_io_free_buffer(BUFFER *buffer);
816 BOOL spoolss_io_q_getprinterdriver2(char *desc,
817 SPOOL_Q_GETPRINTERDRIVER2 *q_u,
818 prs_struct *ps, int depth);
819 BOOL spoolss_io_r_getprinterdriver2(char *desc, SPOOL_R_GETPRINTERDRIVER2 *r_u,
820 prs_struct *ps, int depth);
821 BOOL make_spoolss_q_enumprinters(SPOOL_Q_ENUMPRINTERS *q_u,
822 uint32 flags,
823 const char* servername,
824 uint32 level,
825 uint32 size);
826 BOOL spoolss_io_q_enumprinters(char *desc, SPOOL_Q_ENUMPRINTERS *q_u,
827 prs_struct *ps, int depth);
828 void free_r_enumprinters(SPOOL_R_ENUMPRINTERS *r_u);
829 BOOL spoolss_io_r_enumprinters(char *desc,
830 SPOOL_R_ENUMPRINTERS *r_u,
831 prs_struct *ps, int depth);
832 BOOL spoolss_io_r_getprinter(char *desc,
833 SPOOL_R_GETPRINTER *r_u,
834 prs_struct *ps, int depth);
835 BOOL make_spoolss_q_getprinter(SPOOL_Q_GETPRINTER *q_u,
836 POLICY_HND *hnd,
837 uint32 level,
838 uint32 buf_size);
839 BOOL spoolss_io_q_getprinter(char *desc, SPOOL_Q_GETPRINTER *q_u,
840 prs_struct *ps, int depth);
841 BOOL spoolss_io_r_setprinter(char *desc, SPOOL_R_SETPRINTER *r_u, prs_struct *ps, int depth);
842 BOOL spoolss_io_q_setprinter(char *desc, SPOOL_Q_SETPRINTER *q_u, prs_struct *ps, int depth);
843 BOOL spoolss_io_r_fcpn(char *desc, SPOOL_R_FCPN *r_u, prs_struct *ps, int depth);
844 BOOL spoolss_io_q_fcpn(char *desc, SPOOL_Q_FCPN *q_u, prs_struct *ps, int depth);
845 BOOL spoolss_io_r_addjob(char *desc, SPOOL_R_ADDJOB *r_u, prs_struct *ps, int depth);
846 BOOL spoolss_io_q_addjob(char *desc, SPOOL_Q_ADDJOB *q_u, prs_struct *ps, int depth);
847 void free_job_info_ctr(JOB_INFO_CTR *ctr, uint32 level, uint32 numofjobs);
848 void free_r_enumjobs(SPOOL_R_ENUMJOBS *r_u);
849 BOOL spoolss_io_r_enumjobs(char *desc, SPOOL_R_ENUMJOBS *r_u, prs_struct *ps, int depth);
850 BOOL make_spoolss_q_enumjobs(SPOOL_Q_ENUMJOBS *q_u, const POLICY_HND *hnd,
851 uint32 firstjob,
852 uint32 numofjobs,
853 uint32 level,
854 uint32 buf_size);
855 BOOL spoolss_io_q_enumjobs(char *desc, SPOOL_Q_ENUMJOBS *q_u, prs_struct *ps, int depth);
856 BOOL spoolss_io_r_schedulejob(char *desc, SPOOL_R_SCHEDULEJOB *r_u, prs_struct *ps, int depth);
857 BOOL spoolss_io_q_schedulejob(char *desc, SPOOL_Q_SCHEDULEJOB *q_u, prs_struct *ps, int depth);
858 BOOL spoolss_io_r_setjob(char *desc, SPOOL_R_SETJOB *r_u, prs_struct *ps, int depth);
859 BOOL spoolss_io_q_setjob(char *desc, SPOOL_Q_SETJOB *q_u, prs_struct *ps, int depth);
860 BOOL spoolss_io_r_enumdrivers(char *desc, SPOOL_R_ENUMPRINTERDRIVERS *r_u, prs_struct *ps, int depth);
861 void free_spoolss_r_enumdrivers(SPOOL_R_ENUMPRINTERDRIVERS *r_u);
862 BOOL spoolss_io_q_enumprinterdrivers(char *desc, SPOOL_Q_ENUMPRINTERDRIVERS *q_u, prs_struct *ps, int depth);
863 BOOL spoolss_io_r_enumforms(char *desc, SPOOL_R_ENUMFORMS *r_u, prs_struct *ps, int depth);
864 void spoolss_free_r_enumforms(SPOOL_R_ENUMFORMS *r_u);
865 BOOL spoolss_io_q_enumforms(char *desc, SPOOL_Q_ENUMFORMS *q_u, prs_struct *ps, int depth);
866 BOOL spoolss_io_r_enumports(char *desc, SPOOL_R_ENUMPORTS *r_u, prs_struct *ps, int depth);
867 void spoolss_free_r_enumports(SPOOL_R_ENUMPORTS *r_u);
868 BOOL spoolss_io_q_enumports(char *desc, SPOOL_Q_ENUMPORTS *q_u, prs_struct *ps, int depth);
869 BOOL spool_io_printer_info_level_2(char *desc, SPOOL_PRINTER_INFO_LEVEL_2 **q_u, prs_struct *ps, int depth);
870 BOOL spool_io_printer_info_level(char *desc, SPOOL_PRINTER_INFO_LEVEL *il, prs_struct *ps, int depth);
871 BOOL spool_io_user_level_1(char *desc, SPOOL_USER_LEVEL_1 **q_u, prs_struct *ps, int depth);
872 BOOL spool_io_user_level(char *desc, SPOOL_USER_LEVEL *q_u, prs_struct *ps, int depth);
873 BOOL spoolss_io_q_addprinterex(char *desc, SPOOL_Q_ADDPRINTEREX *q_u, prs_struct *ps, int depth);
874 BOOL spoolss_io_r_addprinterex(char *desc, SPOOL_R_ADDPRINTEREX *r_u, prs_struct *ps, int depth);
875 BOOL spool_io_printer_driver_info_level_3(char *desc, SPOOL_PRINTER_DRIVER_INFO_LEVEL_3 **q_u,
876 prs_struct *ps, int depth);
877 BOOL uniarray_2_ascarray(BUFFER5 *buf5, char ***ar);
878 BOOL smb_io_unibuffer(char *desc, UNISTR2 *buffer, prs_struct *ps, int depth);
879 BOOL spool_io_printer_driver_info_level(char *desc, SPOOL_PRINTER_DRIVER_INFO_LEVEL *il, prs_struct *ps, int depth);
880 BOOL spoolss_io_q_addprinterdriver(char *desc, SPOOL_Q_ADDPRINTERDRIVER *q_u, prs_struct *ps, int depth);
881 BOOL spoolss_io_r_addprinterdriver(char *desc, SPOOL_R_ADDPRINTERDRIVER *q_u, prs_struct *ps, int depth);
882 BOOL uni_2_asc_printer_driver_3(SPOOL_PRINTER_DRIVER_INFO_LEVEL_3 *uni,
883 NT_PRINTER_DRIVER_INFO_LEVEL_3 **asc);
884 BOOL uni_2_asc_printer_info_2(const SPOOL_PRINTER_INFO_LEVEL_2 *uni,
885 NT_PRINTER_INFO_LEVEL_2 **asc);
886 BOOL spoolss_io_r_getprinterdriverdir(char *desc, SPOOL_R_GETPRINTERDRIVERDIR *r_u, prs_struct *ps, int depth);
887 BOOL spoolss_io_q_getprinterdriverdir(char *desc, SPOOL_Q_GETPRINTERDRIVERDIR *q_u, prs_struct *ps, int depth);
888 BOOL spoolss_io_r_enumprintprocessors(char *desc, SPOOL_R_ENUMPRINTPROCESSORS *r_u, prs_struct *ps, int depth);
889 BOOL spoolss_io_q_enumprintprocessors(char *desc, SPOOL_Q_ENUMPRINTPROCESSORS *q_u, prs_struct *ps, int depth);
890 BOOL spoolss_io_r_enumprintmonitors(char *desc, SPOOL_R_ENUMPRINTMONITORS *r_u, prs_struct *ps, int depth);
891 BOOL spoolss_io_q_enumprintmonitors(char *desc, SPOOL_Q_ENUMPRINTMONITORS *q_u, prs_struct *ps, int depth);
892 BOOL spoolss_io_r_enumprinterdata(char *desc, SPOOL_R_ENUMPRINTERDATA *r_u, prs_struct *ps, int depth);
893 BOOL spoolss_io_q_enumprinterdata(char *desc, SPOOL_Q_ENUMPRINTERDATA *q_u, prs_struct *ps, int depth);
894 BOOL spoolss_io_q_setprinterdata(char *desc, SPOOL_Q_SETPRINTERDATA *q_u, prs_struct *ps, int depth);
895 BOOL spoolss_io_r_setprinterdata(char *desc, SPOOL_R_SETPRINTERDATA *r_u, prs_struct *ps, int depth);
896 BOOL convert_specific_param(NT_PRINTER_PARAM **param, const UNISTR2 *value,
897 uint32 type, const uint8 *data, uint32 len);
898 BOOL spoolss_io_q_addform(char *desc, SPOOL_Q_ADDFORM *q_u, prs_struct *ps, int depth);
899 BOOL spoolss_io_r_addform(char *desc, SPOOL_R_ADDFORM *r_u, prs_struct *ps, int depth);
900 BOOL spoolss_io_q_setform(char *desc, SPOOL_Q_SETFORM *q_u, prs_struct *ps, int depth);
901 BOOL spoolss_io_r_setform(char *desc, SPOOL_R_SETFORM *r_u, prs_struct *ps, int depth);
902 BOOL spoolss_io_r_getjob(char *desc, SPOOL_R_GETJOB *r_u, prs_struct *ps, int depth);
903 void free_spoolss_r_getjob(SPOOL_R_GETJOB *r_u);
904 BOOL spoolss_io_q_getjob(char *desc, SPOOL_Q_GETJOB *q_u, prs_struct *ps, int depth);
905 void free_devmode(DEVICEMODE *devmode);
906 void free_printer_info_2(PRINTER_INFO_2 *printer);
907 void free_print2_array(uint32 num_entries, PRINTER_INFO_2 **entries);
908 PRINTER_INFO_2 *add_print2_to_array(uint32 *len, PRINTER_INFO_2 ***array,
909 const PRINTER_INFO_2 *prt);
910 void free_print1_array(uint32 num_entries, PRINTER_INFO_1 **entries);
911 PRINTER_INFO_1 *add_print1_to_array(uint32 *len, PRINTER_INFO_1 ***array,
912 const PRINTER_INFO_1 *prt);
913 void free_job1_array(uint32 num_entries, JOB_INFO_1 **entries);
914 JOB_INFO_1 *add_job1_to_array(uint32 *len, JOB_INFO_1 ***array,
915 const JOB_INFO_1 *job);
916 void free_job_info_2(JOB_INFO_2 *job);
917 void free_job2_array(uint32 num_entries, JOB_INFO_2 **entries);
918 JOB_INFO_2 *add_job2_to_array(uint32 *len, JOB_INFO_2 ***array,
919 const JOB_INFO_2 *job);
921 /*The following definitions come from rpc_parse/parse_srv.c */
923 BOOL make_srv_share_info1_str(SH_INFO_1_STR *sh1,
924 const char *net_name, const char *remark);
925 BOOL make_srv_share_info1(SH_INFO_1 *sh1,
926 const char *net_name, uint32 type,
927 const char *remark);
928 BOOL make_srv_share_info2_str(SH_INFO_2_STR *sh2,
929 const char *net_name, const char *remark,
930 const char *path, const char *pass);
931 BOOL make_srv_share_info2(SH_INFO_2 *sh2,
932 const char *net_name, uint32 type,
933 const char *remark,
934 uint32 perms, uint32 max_uses, uint32 num_uses,
935 const char *path, const char *pass);
936 void srv_free_srv_share_ctr(SRV_SHARE_INFO_CTR *ctr);
937 BOOL make_srv_q_net_share_enum(SRV_Q_NET_SHARE_ENUM *q_n,
938 const char *srv_name,
939 uint32 share_level, SRV_SHARE_INFO_CTR *ctr,
940 uint32 preferred_len,
941 ENUM_HND *hnd);
942 BOOL srv_io_q_net_share_enum(char *desc, SRV_Q_NET_SHARE_ENUM *q_n, prs_struct *ps, int depth);
943 BOOL srv_io_r_net_share_enum(char *desc, SRV_R_NET_SHARE_ENUM *r_n, prs_struct *ps, int depth);
944 BOOL make_srv_q_net_share_get_info(SRV_Q_NET_SHARE_GET_INFO *q_n,
945 const UNISTR2 *srv_name,
946 const UNISTR2 *share_name,
947 uint32 info_level);
948 BOOL srv_io_q_net_share_get_info(char *desc, SRV_Q_NET_SHARE_GET_INFO *q_n,
949 prs_struct *ps, int depth);
950 BOOL make_srv_r_net_share_get_info(SRV_R_NET_SHARE_GET_INFO *r_n,
951 uint32 info_level,
952 SHARE_INFO_CTR *ctr,
953 uint32 status);
954 BOOL srv_io_r_net_share_get_info(char *desc, SRV_R_NET_SHARE_GET_INFO *r_n,
955 prs_struct *ps, int depth);
956 BOOL make_srv_sess_info0_str(SESS_INFO_0_STR *ss0, char *name);
957 BOOL make_srv_sess_info0(SESS_INFO_0 *ss0, char *name);
958 BOOL make_srv_sess_info1_str(SESS_INFO_1_STR *ss1, char *name, char *user);
959 BOOL make_srv_sess_info1(SESS_INFO_1 *ss1,
960 char *name, char *user,
961 uint32 num_opens, uint32 open_time, uint32 idle_time,
962 uint32 user_flags);
963 BOOL make_srv_q_net_sess_enum(SRV_Q_NET_SESS_ENUM *q_n,
964 const char *srv_name, const char *qual_name,
965 char *user_name,
966 uint32 sess_level, SRV_SESS_INFO_CTR *ctr,
967 uint32 preferred_len,
968 ENUM_HND *hnd);
969 BOOL srv_io_q_net_sess_enum(char *desc, SRV_Q_NET_SESS_ENUM *q_n, prs_struct *ps, int depth);
970 BOOL srv_io_r_net_sess_enum(char *desc, SRV_R_NET_SESS_ENUM *r_n, prs_struct *ps, int depth);
971 BOOL make_srv_conn_info0(CONN_INFO_0 *ss0, uint32 id);
972 BOOL make_srv_conn_info1_str(CONN_INFO_1_STR *ss1, char *usr_name, char *net_name);
973 BOOL make_srv_conn_info1(CONN_INFO_1 *ss1,
974 uint32 id, uint32 type,
975 uint32 num_opens, uint32 num_users, uint32 open_time,
976 char *usr_name, char *net_name);
977 BOOL make_srv_q_net_conn_enum(SRV_Q_NET_CONN_ENUM *q_n,
978 const char *srv_name, const char *qual_name,
979 uint32 conn_level, SRV_CONN_INFO_CTR *ctr,
980 uint32 preferred_len,
981 ENUM_HND *hnd);
982 BOOL srv_io_q_net_conn_enum(char *desc, SRV_Q_NET_CONN_ENUM *q_n, prs_struct *ps, int depth);
983 BOOL srv_io_r_net_conn_enum(char *desc, SRV_R_NET_CONN_ENUM *r_n, prs_struct *ps, int depth);
984 BOOL make_srv_tprt_info0_str(TPRT_INFO_0_STR *tp0,
985 char *trans_name,
986 char *trans_addr, uint32 trans_addr_len,
987 char *addr_name);
988 BOOL make_srv_tprt_info0(TPRT_INFO_0 *tp0,
989 uint32 num_vcs, uint32 trans_addr_len,
990 char *trans_name, char *trans_addr,
991 char *addr_name);
992 void free_srv_tprt_info_0(SRV_TPRT_INFO_0 *tp0);
993 void free_srv_tprt_ctr(SRV_TPRT_INFO_CTR *ctr);
994 BOOL make_srv_q_net_tprt_enum(SRV_Q_NET_TPRT_ENUM *q_n,
995 const char *srv_name,
996 uint32 tprt_level, SRV_TPRT_INFO_CTR *ctr,
997 uint32 preferred_len,
998 ENUM_HND *hnd);
999 BOOL srv_io_q_net_tprt_enum(char *desc, SRV_Q_NET_TPRT_ENUM *q_n, prs_struct *ps, int depth);
1000 BOOL srv_io_r_net_tprt_enum(char *desc, SRV_R_NET_TPRT_ENUM *r_n, prs_struct *ps, int depth);
1001 BOOL make_srv_file_info3_str(FILE_INFO_3_STR *fi3,
1002 const char *path_name, const char *user_name);
1003 BOOL make_srv_file_info3(FILE_INFO_3 *fl3,
1004 uint32 id, uint32 perms, uint32 num_locks,
1005 const char *path_name, const char *user_name);
1006 void srv_free_srv_file_ctr(SRV_FILE_INFO_CTR *ctr);
1007 BOOL make_srv_q_net_file_enum(SRV_Q_NET_FILE_ENUM *q_n,
1008 const char *srv_name, const char *qual_name,
1009 uint32 file_id,
1010 uint32 file_level, SRV_FILE_INFO_CTR *ctr,
1011 uint32 preferred_len,
1012 ENUM_HND *hnd);
1013 BOOL srv_io_q_net_file_enum(char *desc, SRV_Q_NET_FILE_ENUM *q_n, prs_struct *ps, int depth);
1014 BOOL srv_io_r_net_file_enum(char *desc, SRV_R_NET_FILE_ENUM *r_n, prs_struct *ps, int depth);
1015 BOOL make_srv_q_net_srv_get_info(SRV_Q_NET_SRV_GET_INFO *srv,
1016 char *server_name, uint32 switch_value);
1017 BOOL srv_io_q_net_srv_get_info(char *desc, SRV_Q_NET_SRV_GET_INFO *q_n, prs_struct *ps, int depth);
1018 BOOL make_srv_r_net_srv_get_info(SRV_R_NET_SRV_GET_INFO *srv,
1019 uint32 switch_value, SRV_INFO_CTR *ctr, uint32 status);
1020 BOOL srv_io_r_net_srv_get_info(char *desc, SRV_R_NET_SRV_GET_INFO *r_n, prs_struct *ps, int depth);
1021 BOOL make_srv_q_net_remote_tod(SRV_Q_NET_REMOTE_TOD *q_t, char *server_name);
1022 BOOL srv_io_q_net_remote_tod(char *desc, SRV_Q_NET_REMOTE_TOD *q_n, prs_struct *ps, int depth);
1023 BOOL make_time_of_day_info(TIME_OF_DAY_INFO *tod, uint32 elapsedt, uint32 msecs,
1024 uint32 hours, uint32 mins, uint32 secs, uint32 hunds,
1025 uint32 zone, uint32 tintervals, uint32 day,
1026 uint32 month, uint32 year, uint32 weekday);
1027 BOOL srv_io_r_net_remote_tod(char *desc, SRV_R_NET_REMOTE_TOD *r_n, prs_struct *ps, int depth);
1029 /*The following definitions come from rpc_parse/parse_svc.c */
1031 BOOL make_svc_q_open_sc_man(SVC_Q_OPEN_SC_MAN *q_u,
1032 const char *server, const char *database,
1033 uint32 des_access);
1034 BOOL svc_io_q_open_sc_man(char *desc, SVC_Q_OPEN_SC_MAN *q_u, prs_struct *ps, int depth);
1035 BOOL svc_io_r_open_sc_man(char *desc, SVC_R_OPEN_SC_MAN *r_u, prs_struct *ps, int depth);
1036 BOOL make_svc_q_open_service(SVC_Q_OPEN_SERVICE *q_u,
1037 POLICY_HND *hnd,
1038 const char *server,
1039 uint32 des_access);
1040 BOOL svc_io_q_open_service(char *desc, SVC_Q_OPEN_SERVICE *q_u, prs_struct *ps, int depth);
1041 BOOL svc_io_r_open_service(char *desc, SVC_R_OPEN_SERVICE *r_u, prs_struct *ps, int depth);
1042 BOOL make_svc_q_stop_service(SVC_Q_STOP_SERVICE *q_c, POLICY_HND *hnd,
1043 uint32 unk);
1044 BOOL svc_io_q_stop_service(char *desc, SVC_Q_STOP_SERVICE *q_s, prs_struct *ps, int depth);
1045 BOOL svc_io_r_stop_service(char *desc, SVC_R_STOP_SERVICE *r_s, prs_struct *ps, int depth);
1046 BOOL make_svc_q_start_service(SVC_Q_START_SERVICE *q_c, POLICY_HND *hnd,
1047 uint32 argc,
1048 char **argv);
1049 BOOL svc_io_q_start_service(char *desc, SVC_Q_START_SERVICE *q_s, prs_struct *ps, int depth);
1050 BOOL svc_io_r_start_service(char *desc, SVC_R_START_SERVICE *r_s, prs_struct *ps, int depth);
1051 BOOL make_svc_query_svc_cfg(QUERY_SERVICE_CONFIG *q_u,
1052 uint32 service_type, uint32 start_type,
1053 uint32 error_control,
1054 char* bin_path_name, char* load_order_grp,
1055 uint32 tag_id,
1056 char* dependencies, char* service_start_name,
1057 char* disp_name);
1058 BOOL svc_io_query_svc_cfg(char *desc, QUERY_SERVICE_CONFIG *q_u, prs_struct *ps, int depth);
1059 BOOL make_svc_q_enum_svcs_status(SVC_Q_ENUM_SVCS_STATUS *q_c, POLICY_HND *hnd,
1060 uint32 service_type, uint32 service_state,
1061 uint32 buf_size, uint32 resume_hnd );
1062 BOOL svc_io_q_enum_svcs_status(char *desc, SVC_Q_ENUM_SVCS_STATUS *q_u, prs_struct *ps, int depth);
1063 BOOL make_svc_r_enum_svcs_status(SVC_R_ENUM_SVCS_STATUS *r_c,
1064 ENUM_SRVC_STATUS *svcs, uint32 more_buf_size,
1065 uint32 num_svcs, ENUM_HND *resume_hnd,
1066 uint32 dos_status);
1067 BOOL svc_io_r_enum_svcs_status(char *desc, SVC_R_ENUM_SVCS_STATUS *svc, prs_struct *ps, int depth);
1068 BOOL svc_io_svc_status(char *desc, SVC_STATUS *svc, prs_struct *ps, int depth);
1069 BOOL make_svc_q_query_svc_config(SVC_Q_QUERY_SVC_CONFIG *q_c, POLICY_HND *hnd,
1070 uint32 buf_size);
1071 BOOL svc_io_q_query_svc_config(char *desc, SVC_Q_QUERY_SVC_CONFIG *q_u, prs_struct *ps, int depth);
1072 BOOL make_svc_r_query_svc_config(SVC_R_QUERY_SVC_CONFIG *r_c,
1073 QUERY_SERVICE_CONFIG *cfg,
1074 uint32 buf_size);
1075 BOOL svc_io_r_query_svc_config(char *desc, SVC_R_QUERY_SVC_CONFIG *r_u, prs_struct *ps, int depth);
1076 BOOL svc_io_q_query_disp_name(char *desc, SVC_Q_QUERY_DISP_NAME *q_u, prs_struct *ps, int depth);
1077 BOOL svc_io_r_query_disp_name(char *desc, SVC_R_QUERY_DISP_NAME *r_u, prs_struct *ps, int depth);
1078 BOOL make_svc_q_close(SVC_Q_CLOSE *q_c, POLICY_HND *hnd);
1079 BOOL svc_io_q_close(char *desc, SVC_Q_CLOSE *q_u, prs_struct *ps, int depth);
1080 BOOL svc_io_r_close(char *desc, SVC_R_CLOSE *r_u, prs_struct *ps, int depth);
1081 BOOL make_svc_q_change_svc_config(SVC_Q_CHANGE_SVC_CONFIG *q_u, POLICY_HND *hnd,
1082 uint32 service_type, uint32 start_type,
1083 uint32 unknown_0,
1084 uint32 error_control,
1085 char* bin_path_name, char* load_order_grp,
1086 uint32 tag_id,
1087 char* dependencies, char* service_start_name,
1088 char* password,
1089 char* disp_name);
1090 BOOL svc_io_q_change_svc_config(char *desc, SVC_Q_CHANGE_SVC_CONFIG *q_u, prs_struct *ps, int depth);
1091 BOOL make_svc_r_change_svc_config(SVC_R_CHANGE_SVC_CONFIG *r_c,
1092 uint32 unknown_0, uint32 status);
1093 BOOL svc_io_r_change_svc_config(char *desc, SVC_R_CHANGE_SVC_CONFIG *r_u, prs_struct *ps, int depth);
1095 /*The following definitions come from rpc_parse/parse_wks.c */
1097 BOOL make_wks_q_query_info(WKS_Q_QUERY_INFO *q_u,
1098 char *server, uint16 switch_value) ;
1099 BOOL wks_io_q_query_info(char *desc, WKS_Q_QUERY_INFO *q_u, prs_struct *ps, int depth);
1100 BOOL make_wks_info_100(WKS_INFO_100 *inf,
1101 uint32 platform_id, uint32 ver_major, uint32 ver_minor,
1102 char *my_name, char *domain_name);
1103 BOOL make_wks_r_query_info(WKS_R_QUERY_INFO *r_u,
1104 uint32 switch_value, WKS_INFO_100 *wks100,
1105 int status) ;
1106 BOOL wks_io_r_query_info(char *desc, WKS_R_QUERY_INFO *r_u, prs_struct *ps, int depth);
1107 #endif /* _RPC_PARSE_PROTO_H_ */