1 /* header auto-generated by pidl */
5 #include "libcli/util/ntstatus.h"
7 #include "librpc/gen_ndr/misc.h"
11 #define DCERPC_REQUEST_LENGTH ( 24 )
12 #define DCERPC_BIND_REASON_ASYNTAX ( 1 )
13 #define DCERPC_BIND_PROVIDER_REJECT ( 2 )
14 #define DECRPC_BIND_PROTOCOL_VERSION_NOT_SUPPORTED ( 4 )
15 #define DCERPC_BIND_REASON_INVALID_AUTH_TYPE ( 8 )
16 #define DCERPC_RESPONSE_LENGTH ( 24 )
17 #define DCERPC_FAULT_OP_RNG_ERROR ( 0x1c010002 )
18 #define DCERPC_FAULT_UNK_IF ( 0x1c010003 )
19 #define DCERPC_FAULT_NDR ( 0x000006f7 )
20 #define DCERPC_FAULT_INVALID_TAG ( 0x1c000006 )
21 #define DCERPC_FAULT_CONTEXT_MISMATCH ( 0x1c00001a )
22 #define DCERPC_FAULT_OTHER ( 0x00000001 )
23 #define DCERPC_FAULT_ACCESS_DENIED ( 0x00000005 )
24 #define DCERPC_FAULT_CANT_PERFORM ( 0x000006d8 )
25 #define DCERPC_FAULT_SEC_PKG_ERROR ( 0x00000721 )
26 #define DCERPC_FAULT_TODO ( 0x00000042 )
27 #define DCERPC_AUTH_LEVEL_DEFAULT ( DCERPC_AUTH_LEVEL_CONNECT )
28 #define DCERPC_AUTH_TRAILER_LENGTH ( 8 )
29 #define DCERPC_PFC_FLAG_FIRST ( 0x01 )
30 #define DCERPC_PFC_FLAG_LAST ( 0x02 )
31 #define DCERPC_PFC_FLAG_PENDING_CANCEL ( 0x04 )
32 #define DCERPC_PFC_FLAG_SUPPORT_HEADER_SIGN ( DCERPC_PFC_FLAG_PENDING_CANCEL )
33 #define DCERPC_PFC_FLAG_CONC_MPX ( 0x10 )
34 #define DCERPC_PFC_FLAG_DID_NOT_EXECUTE ( 0x20 )
35 #define DCERPC_PFC_FLAG_MAYBE ( 0x40 )
36 #define DCERPC_PFC_FLAG_OBJECT_UUID ( 0x80 )
37 #define DCERPC_PFC_OFFSET ( 3 )
38 #define DCERPC_DREP_OFFSET ( 4 )
39 #define DCERPC_FRAG_LEN_OFFSET ( 8 )
40 #define DCERPC_AUTH_LEN_OFFSET ( 10 )
41 #define DCERPC_DREP_LE ( 0x10 )
42 struct dcerpc_ctx_list
{
44 uint8_t num_transfer_syntaxes
;
45 struct ndr_syntax_id abstract_syntax
;
46 struct ndr_syntax_id
*transfer_syntaxes
;
50 uint16_t max_xmit_frag
;
51 uint16_t max_recv_frag
;
52 uint32_t assoc_group_id
;
54 struct dcerpc_ctx_list
*ctx_list
;
55 DATA_BLOB _pad
;/* [flag(LIBNDR_FLAG_ALIGN4)] */
56 DATA_BLOB auth_info
;/* [flag(LIBNDR_FLAG_REMAINING)] */
64 struct dcerpc_empty empty
;/* [default] */
65 struct GUID object
;/* [case(LIBNDR_FLAG_OBJECT_PRESENT)] */
66 }/* [nodiscriminant] */;
68 struct dcerpc_request
{
72 union dcerpc_object object
;/* [switch_is(ndr->flags&LIBNDR_FLAG_OBJECT_PRESENT)] */
73 DATA_BLOB _pad
;/* [flag(LIBNDR_FLAG_ALIGN8)] */
74 DATA_BLOB stub_and_verifier
;/* [flag(LIBNDR_FLAG_REMAINING)] */
77 struct dcerpc_ack_ctx
{
80 struct ndr_syntax_id syntax
;
83 struct dcerpc_bind_ack
{
84 uint16_t max_xmit_frag
;
85 uint16_t max_recv_frag
;
86 uint32_t assoc_group_id
;
87 uint16_t secondary_address_size
;/* [value(strlen(secondary_address)+1)] */
88 const char *secondary_address
;/* [charset(DOS)] */
89 DATA_BLOB _pad1
;/* [flag(LIBNDR_FLAG_ALIGN4)] */
91 struct dcerpc_ack_ctx
*ctx_list
;
92 DATA_BLOB auth_info
;/* [flag(LIBNDR_FLAG_REMAINING)] */
95 struct dcerpc_bind_nak_versions
{
96 uint32_t num_versions
;
100 union dcerpc_bind_nak_versions_ctr
{
101 struct dcerpc_bind_nak_versions v
;/* [case(DECRPC_BIND_PROTOCOL_VERSION_NOT_SUPPORTED)] */
102 }/* [nodiscriminant] */;
104 struct dcerpc_bind_nak
{
105 uint16_t reject_reason
;
106 union dcerpc_bind_nak_versions_ctr versions
;/* [switch_is(reject_reason)] */
109 struct dcerpc_response
{
112 uint8_t cancel_count
;
113 DATA_BLOB _pad
;/* [flag(LIBNDR_FLAG_ALIGN8)] */
114 DATA_BLOB stub_and_verifier
;/* [flag(LIBNDR_FLAG_REMAINING)] */
117 struct dcerpc_fault
{
120 uint8_t cancel_count
;
122 DATA_BLOB _pad
;/* [flag(LIBNDR_FLAG_REMAINING)] */
126 #ifndef USE_UINT_ENUMS
128 DCERPC_AUTH_TYPE_NONE
=(int)(0),
129 DCERPC_AUTH_TYPE_KRB5_1
=(int)(1),
130 DCERPC_AUTH_TYPE_SPNEGO
=(int)(9),
131 DCERPC_AUTH_TYPE_NTLMSSP
=(int)(10),
132 DCERPC_AUTH_TYPE_KRB5
=(int)(16),
133 DCERPC_AUTH_TYPE_DPA
=(int)(17),
134 DCERPC_AUTH_TYPE_MSN
=(int)(18),
135 DCERPC_AUTH_TYPE_DIGEST
=(int)(21),
136 DCERPC_AUTH_TYPE_SCHANNEL
=(int)(68),
137 DCERPC_AUTH_TYPE_MSMQ
=(int)(100)
140 { __donnot_use_enum_dcerpc_AuthType
=0x7FFFFFFF}
141 #define DCERPC_AUTH_TYPE_NONE ( 0 )
142 #define DCERPC_AUTH_TYPE_KRB5_1 ( 1 )
143 #define DCERPC_AUTH_TYPE_SPNEGO ( 9 )
144 #define DCERPC_AUTH_TYPE_NTLMSSP ( 10 )
145 #define DCERPC_AUTH_TYPE_KRB5 ( 16 )
146 #define DCERPC_AUTH_TYPE_DPA ( 17 )
147 #define DCERPC_AUTH_TYPE_MSN ( 18 )
148 #define DCERPC_AUTH_TYPE_DIGEST ( 21 )
149 #define DCERPC_AUTH_TYPE_SCHANNEL ( 68 )
150 #define DCERPC_AUTH_TYPE_MSMQ ( 100 )
154 enum dcerpc_AuthLevel
155 #ifndef USE_UINT_ENUMS
157 DCERPC_AUTH_LEVEL_NONE
=(int)(1),
158 DCERPC_AUTH_LEVEL_CONNECT
=(int)(2),
159 DCERPC_AUTH_LEVEL_CALL
=(int)(3),
160 DCERPC_AUTH_LEVEL_PACKET
=(int)(4),
161 DCERPC_AUTH_LEVEL_INTEGRITY
=(int)(5),
162 DCERPC_AUTH_LEVEL_PRIVACY
=(int)(6)
165 { __donnot_use_enum_dcerpc_AuthLevel
=0x7FFFFFFF}
166 #define DCERPC_AUTH_LEVEL_NONE ( 1 )
167 #define DCERPC_AUTH_LEVEL_CONNECT ( 2 )
168 #define DCERPC_AUTH_LEVEL_CALL ( 3 )
169 #define DCERPC_AUTH_LEVEL_PACKET ( 4 )
170 #define DCERPC_AUTH_LEVEL_INTEGRITY ( 5 )
171 #define DCERPC_AUTH_LEVEL_PRIVACY ( 6 )
176 enum dcerpc_AuthType auth_type
;
177 enum dcerpc_AuthLevel auth_level
;
178 uint8_t auth_pad_length
;
179 uint8_t auth_reserved
;
180 uint32_t auth_context_id
;
181 DATA_BLOB credentials
;/* [flag(LIBNDR_FLAG_REMAINING)] */
184 struct dcerpc_auth3
{
186 DATA_BLOB auth_info
;/* [flag(LIBNDR_FLAG_REMAINING)] */
189 struct dcerpc_orphaned
{
191 DATA_BLOB auth_info
;/* [flag(LIBNDR_FLAG_REMAINING)] */
194 struct dcerpc_co_cancel
{
196 DATA_BLOB auth_info
;/* [flag(LIBNDR_FLAG_REMAINING)] */
199 struct dcerpc_cl_cancel
{
204 struct dcerpc_cancel_ack
{
207 uint32_t server_is_accepting
;
213 uint16_t window_size
;
215 uint32_t max_frag_size
;
217 uint16_t selack_size
;
229 struct dcerpc_shutdown
{
233 struct dcerpc_working
{
238 #ifndef USE_UINT_ENUMS
240 DCERPC_PKT_REQUEST
=(int)(0),
241 DCERPC_PKT_PING
=(int)(1),
242 DCERPC_PKT_RESPONSE
=(int)(2),
243 DCERPC_PKT_FAULT
=(int)(3),
244 DCERPC_PKT_WORKING
=(int)(4),
245 DCERPC_PKT_NOCALL
=(int)(5),
246 DCERPC_PKT_REJECT
=(int)(6),
247 DCERPC_PKT_ACK
=(int)(7),
248 DCERPC_PKT_CL_CANCEL
=(int)(8),
249 DCERPC_PKT_FACK
=(int)(9),
250 DCERPC_PKT_CANCEL_ACK
=(int)(10),
251 DCERPC_PKT_BIND
=(int)(11),
252 DCERPC_PKT_BIND_ACK
=(int)(12),
253 DCERPC_PKT_BIND_NAK
=(int)(13),
254 DCERPC_PKT_ALTER
=(int)(14),
255 DCERPC_PKT_ALTER_RESP
=(int)(15),
256 DCERPC_PKT_AUTH3
=(int)(16),
257 DCERPC_PKT_SHUTDOWN
=(int)(17),
258 DCERPC_PKT_CO_CANCEL
=(int)(18),
259 DCERPC_PKT_ORPHANED
=(int)(19)
262 { __donnot_use_enum_dcerpc_pkt_type
=0x7FFFFFFF}
263 #define DCERPC_PKT_REQUEST ( 0 )
264 #define DCERPC_PKT_PING ( 1 )
265 #define DCERPC_PKT_RESPONSE ( 2 )
266 #define DCERPC_PKT_FAULT ( 3 )
267 #define DCERPC_PKT_WORKING ( 4 )
268 #define DCERPC_PKT_NOCALL ( 5 )
269 #define DCERPC_PKT_REJECT ( 6 )
270 #define DCERPC_PKT_ACK ( 7 )
271 #define DCERPC_PKT_CL_CANCEL ( 8 )
272 #define DCERPC_PKT_FACK ( 9 )
273 #define DCERPC_PKT_CANCEL_ACK ( 10 )
274 #define DCERPC_PKT_BIND ( 11 )
275 #define DCERPC_PKT_BIND_ACK ( 12 )
276 #define DCERPC_PKT_BIND_NAK ( 13 )
277 #define DCERPC_PKT_ALTER ( 14 )
278 #define DCERPC_PKT_ALTER_RESP ( 15 )
279 #define DCERPC_PKT_AUTH3 ( 16 )
280 #define DCERPC_PKT_SHUTDOWN ( 17 )
281 #define DCERPC_PKT_CO_CANCEL ( 18 )
282 #define DCERPC_PKT_ORPHANED ( 19 )
286 union dcerpc_payload
{
287 struct dcerpc_request request
;/* [case(DCERPC_PKT_REQUEST)] */
288 struct dcerpc_ping ping
;/* [case(DCERPC_PKT_PING)] */
289 struct dcerpc_response response
;/* [case(DCERPC_PKT_RESPONSE)] */
290 struct dcerpc_fault fault
;/* [case(DCERPC_PKT_FAULT)] */
291 struct dcerpc_working working
;/* [case(DCERPC_PKT_WORKING)] */
292 struct dcerpc_fack nocall
;/* [case(DCERPC_PKT_NOCALL)] */
293 struct dcerpc_fault reject
;/* [case(DCERPC_PKT_REJECT)] */
294 struct dcerpc_ack ack
;/* [case(DCERPC_PKT_ACK)] */
295 struct dcerpc_cl_cancel cl_cancel
;/* [case(DCERPC_PKT_CL_CANCEL)] */
296 struct dcerpc_fack fack
;/* [case(DCERPC_PKT_FACK)] */
297 struct dcerpc_cancel_ack cancel_ack
;/* [case(DCERPC_PKT_CANCEL_ACK)] */
298 struct dcerpc_bind bind
;/* [case(DCERPC_PKT_BIND)] */
299 struct dcerpc_bind_ack bind_ack
;/* [case(DCERPC_PKT_BIND_ACK)] */
300 struct dcerpc_bind_nak bind_nak
;/* [case(DCERPC_PKT_BIND_NAK)] */
301 struct dcerpc_bind alter
;/* [case(DCERPC_PKT_ALTER)] */
302 struct dcerpc_bind_ack alter_resp
;/* [case(DCERPC_PKT_ALTER_RESP)] */
303 struct dcerpc_shutdown shutdown
;/* [case(DCERPC_PKT_SHUTDOWN)] */
304 struct dcerpc_co_cancel co_cancel
;/* [case(DCERPC_PKT_CO_CANCEL)] */
305 struct dcerpc_orphaned orphaned
;/* [case(DCERPC_PKT_ORPHANED)] */
306 struct dcerpc_auth3 auth3
;/* [case(DCERPC_PKT_AUTH3)] */
307 }/* [nodiscriminant] */;
309 struct ncacn_packet
{
311 uint8_t rpc_vers_minor
;
312 enum dcerpc_pkt_type ptype
;
315 uint16_t frag_length
;
316 uint16_t auth_length
;
318 union dcerpc_payload u
;/* [switch_is(ptype)] */
321 struct ncadg_packet
{
330 struct GUID activity
;
331 uint32_t server_boot
;
332 uint32_t iface_version
;
341 union dcerpc_payload u
;/* [switch_is(ptype)] */
344 #endif /* _HEADER_dcerpc */