s3-rpc_cli: Remove some unused wrapping code.
[samba.git] / source3 / rpc_client / cli_lsarpc.h
1 /*
2  *  Unix SMB/CIFS implementation.
3  *
4  *  LSARPC client routines
5  *
6  *  Copyright (c) 2000-2001 Tim Potter
7  *  Copyright (c) 1992-2000 Andrew Tridgell
8  *  Copyright (c) 2002      Rafal Szczesniak
9  *  Copyright (c) 2005      Jeremy Allison
10  *  Copyright (c) 2007      Michael Adam
11  *  Copyright (c) 2008      Guenther Deschner
12  *
13  *  This program is free software; you can redistribute it and/or modify
14  *  it under the terms of the GNU General Public License as published by
15  *  the Free Software Foundation; either version 3 of the License, or
16  *  (at your option) any later version.
17  *
18  *  This program is distributed in the hope that it will be useful,
19  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
20  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
21  *  GNU General Public License for more details.
22  *
23  *  You should have received a copy of the GNU General Public License
24  *  along with this program; if not, see <http://www.gnu.org/licenses/>.
25  */
26
27 #ifndef _CLI_LSARPC_H
28 #define _CLI_LSARPC_H
29
30 /* The following definitions come from rpc_client/cli_lsarpc.c  */
31
32 /**
33  * @brief Open a LSA policy.
34  *
35  * @param[in]  h        The dcerpc binding hanlde to use.
36  *
37  * @param[in]  mem_ctx  The memory context to use.
38  *
39  * @param[in]  sec_qos  Enable security quality of services.
40  *
41  * @param[in]  des_access The disired access rights to be granted.
42  *
43  * @param[out]  pol     A pointer to a rpc policy handle.
44  *
45  * @param[out]  result  A pointer for the NDR NTSTATUS error code.
46  *
47  * @return              A corresponding NTSTATUS error code for the connection.
48  */
49 NTSTATUS dcerpc_lsa_open_policy(struct dcerpc_binding_handle *h,
50                                 TALLOC_CTX *mem_ctx,
51                                 bool sec_qos,
52                                 uint32_t des_access,
53                                 struct policy_handle *pol,
54                                 NTSTATUS *result);
55 NTSTATUS rpccli_lsa_open_policy(struct rpc_pipe_client *cli,
56                                 TALLOC_CTX *mem_ctx,
57                                 bool sec_qos, uint32 des_access,
58                                 struct policy_handle *pol);
59
60 /**
61  * @brief Open a LSA policy.
62  *
63  * @param[in]  h        The dcerpc binding hanlde to use.
64  *
65  * @param[in]  mem_ctx  The memory context to use.
66  *
67  * @param[in]  sec_qos  Enable security quality of services.
68  *
69  * @param[in]  des_access The disired access rights to be granted.
70  *
71  * @param[out]  pol     A pointer to a rpc policy handle.
72  *
73  * @param[out]  result  A pointer for the NDR NTSTATUS error code.
74  *
75  * @return              A corresponding NTSTATUS error code for the connection.
76  */
77 NTSTATUS dcerpc_lsa_open_policy2(struct dcerpc_binding_handle *h,
78                                  TALLOC_CTX *mem_ctx,
79                                  const char *srv_name_slash,
80                                  bool sec_qos,
81                                  uint32_t des_access,
82                                  struct policy_handle *pol,
83                                  NTSTATUS *result);
84 NTSTATUS rpccli_lsa_open_policy2(struct rpc_pipe_client *cli,
85                                  TALLOC_CTX *mem_ctx, bool sec_qos,
86                                  uint32 des_access, struct policy_handle *pol);
87
88 /**
89  * @brief Look up the names that correspond to an array of sids.
90  *
91  * @param[in]  h        The initialized binding handle for a dcerpc connection.
92  *
93  * @param[in]  mem_ctx  The memory context to use.
94  *
95  * @param[in]  pol      The opened domain policy handle.
96  *
97  * @param[in]  num_sids The number of sids in the sids array to look up.
98  *
99  * @param[in]  sids     The array of sids to look up.
100  *
101  * @param[out]  pdomains A pointer to store the refercenced domains.
102  *
103  * @param[out]  pnames  A pointer to an array for the translated names.
104  *
105  * @param[out]  ptypes  A pointer to an array for the types of the names.
106  *
107  * @param[out]  result  A pointer for the conversion result.
108  *
109  * @return              A corresponding NTSTATUS error code.
110  */
111 NTSTATUS dcerpc_lsa_lookup_sids(struct dcerpc_binding_handle *h,
112                                 TALLOC_CTX *mem_ctx,
113                                 struct policy_handle *pol,
114                                 int num_sids,
115                                 const struct dom_sid *sids,
116                                 char ***pdomains,
117                                 char ***pnames,
118                                 enum lsa_SidType **ptypes,
119                                 NTSTATUS *result);
120 NTSTATUS rpccli_lsa_lookup_sids(struct rpc_pipe_client *cli,
121                                 TALLOC_CTX *mem_ctx,
122                                 struct policy_handle *pol,
123                                 int num_sids,
124                                 const struct dom_sid *sids,
125                                 char ***pdomains,
126                                 char ***pnames,
127                                 enum lsa_SidType **ptypes);
128
129 /**
130  * @brief Look up the names that correspond to an array of sids.
131  *
132  * @param[in]  h        The initialized binding handle for a dcerpc connection.
133  *
134  * @param[in]  mem_ctx  The memory context to use.
135  *
136  * @param[in]  pol      The opened domain policy handle.
137  *
138  * @param[in]  num_sids The number of sids in the sids array to look up.
139  *
140  * @param[in]  sids     The array of sids to look up.
141  *
142  * @param[out]  pdomains A pointer to store the refercenced domains.
143  *
144  * @param[out]  pnames  A pointer to an array for the translated names.
145  *
146  * @param[out]  ptypes  A pointer to an array for the types of the names.
147  *
148  * @param[out]  result  A pointer for the conversion result.
149  *
150  * @return              A corresponding NTSTATUS error code.
151  */
152 NTSTATUS dcerpc_lsa_lookup_sids3(struct dcerpc_binding_handle *h,
153                                  TALLOC_CTX *mem_ctx,
154                                  struct policy_handle *pol,
155                                  int num_sids,
156                                  const struct dom_sid *sids,
157                                  char ***pdomains,
158                                  char ***pnames,
159                                  enum lsa_SidType **ptypes,
160                                  NTSTATUS *result);
161 NTSTATUS dcerpc_lsa_lookup_names(struct dcerpc_binding_handle *h,
162                                  TALLOC_CTX *mem_ctx,
163                                  struct policy_handle *pol,
164                                  uint32_t num_names,
165                                  const char **names,
166                                  const char ***dom_names,
167                                  enum lsa_LookupNamesLevel level,
168                                  struct dom_sid **sids,
169                                  enum lsa_SidType **types,
170                                  NTSTATUS *result);
171 NTSTATUS rpccli_lsa_lookup_names(struct rpc_pipe_client *cli,
172                                  TALLOC_CTX *mem_ctx,
173                                  struct policy_handle *pol, int num_names,
174                                  const char **names,
175                                  const char ***dom_names,
176                                  int level,
177                                  struct dom_sid **sids,
178                                  enum lsa_SidType **types);
179
180 NTSTATUS dcerpc_lsa_lookup_names4(struct dcerpc_binding_handle *h,
181                                   TALLOC_CTX *mem_ctx,
182                                   struct policy_handle *pol,
183                                   uint32_t num_names,
184                                   const char **names,
185                                   const char ***dom_names,
186                                   enum lsa_LookupNamesLevel level,
187                                   struct dom_sid **sids,
188                                   enum lsa_SidType **types,
189                                   NTSTATUS *result);
190
191 bool fetch_domain_sid( char *domain, char *remote_machine, struct dom_sid *psid);
192
193 #endif /* _CLI_LSARPC_H */