1/* header auto-generated by pidl */
2
3#include <stdint.h>
4
5#include "libcli/util/ntstatus.h"
6
7#include "librpc/gen_ndr/drsuapi.h"
8#include "librpc/gen_ndr/misc.h"
9#include "librpc/gen_ndr/samr.h"
10#include "librpc/gen_ndr/lsa.h"
11#ifndef _HEADER_drsblobs
12#define _HEADER_drsblobs
13
14#define SUPPLEMENTAL_CREDENTIALS_PREFIX	( "                                                " )
15struct replPropertyMetaData1 {
16	enum drsuapi_DsAttributeId attid;
17	uint32_t version;
18	NTTIME originating_change_time;
19	struct GUID originating_invocation_id;
20	uint64_t originating_usn;
21	uint64_t local_usn;
22};
23
24struct replPropertyMetaDataCtr1 {
25	uint32_t count;
26	uint32_t reserved;
27	struct replPropertyMetaData1 *array;
28};
29
30union replPropertyMetaDataCtr {
31	struct replPropertyMetaDataCtr1 ctr1;/* [case] */
32}/* [nodiscriminant] */;
33
34struct replPropertyMetaDataBlob {
35	uint32_t version;
36	uint32_t reserved;
37	union replPropertyMetaDataCtr ctr;/* [switch_is(version)] */
38}/* [public] */;
39
40struct replUpToDateVectorCtr1 {
41	uint32_t count;
42	uint32_t reserved;
43	struct drsuapi_DsReplicaCursor *cursors;
44};
45
46struct replUpToDateVectorCtr2 {
47	uint32_t count;
48	uint32_t reserved;
49	struct drsuapi_DsReplicaCursor2 *cursors;
50};
51
52union replUpToDateVectorCtr {
53	struct replUpToDateVectorCtr1 ctr1;/* [case] */
54	struct replUpToDateVectorCtr2 ctr2;/* [case(2)] */
55}/* [nodiscriminant] */;
56
57struct replUpToDateVectorBlob {
58	uint32_t version;
59	uint32_t reserved;
60	union replUpToDateVectorCtr ctr;/* [switch_is(version)] */
61}/* [public] */;
62
63struct repsFromTo1OtherInfo {
64	uint32_t __dns_name_size;/* [value(strlen(dns_name)+1)] */
65	const char *dns_name;/* [charset(DOS)] */
66}/* [gensize,public] */;
67
68struct repsFromTo1 {
69	uint32_t blobsize;/* [value(ndr_size_repsFromTo1(this,ndr->iconv_convenience,ndr->flags)+8)] */
70	uint32_t consecutive_sync_failures;
71	NTTIME last_success;
72	NTTIME last_attempt;
73	WERROR result_last_attempt;
74	struct repsFromTo1OtherInfo *other_info;/* [relative] */
75	uint32_t other_info_length;/* [value(ndr_size_repsFromTo1OtherInfo(other_info,ndr->iconv_convenience,ndr->flags))] */
76	uint32_t replica_flags;
77	uint8_t schedule[84];
78	uint32_t reserved;
79	struct drsuapi_DsReplicaHighWaterMark highwatermark;
80	struct GUID source_dsa_obj_guid;
81	struct GUID source_dsa_invocation_id;
82	struct GUID transport_guid;
83}/* [gensize,public,flag(LIBNDR_PRINT_ARRAY_HEX)] */;
84
85struct repsFromTo2OtherInfo {
86	uint32_t __ndr_size;/* [value(ndr_size_repsFromTo2OtherInfo(this,ndr->iconv_convenience,ndr->flags))] */
87	const char * dns_name1;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */
88	uint32_t unknown1;
89	const char * dns_name2;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */
90	uint64_t unknown2;
91}/* [relative_base,gensize,public] */;
92
93struct repsFromTo2 {
94	uint32_t blobsize;/* [value(ndr_size_repsFromTo2(this,ndr->iconv_convenience,ndr->flags)+8)] */
95	uint32_t consecutive_sync_failures;
96	NTTIME last_success;
97	NTTIME last_attempt;
98	WERROR result_last_attempt;
99	struct repsFromTo2OtherInfo *other_info;/* [relative] */
100	uint32_t other_info_length;/* [value(ndr_size_repsFromTo2OtherInfo(other_info,ndr->iconv_convenience,ndr->flags))] */
101	uint32_t replica_flags;
102	uint8_t schedule[84];
103	uint32_t reserved;
104	struct drsuapi_DsReplicaHighWaterMark highwatermark;
105	struct GUID source_dsa_obj_guid;
106	struct GUID source_dsa_invocation_id;
107	struct GUID transport_guid;
108	uint64_t unknown1;
109}/* [gensize,public,flag(LIBNDR_PRINT_ARRAY_HEX)] */;
110
111union repsFromTo {
112	struct repsFromTo1 ctr1;/* [case] */
113	struct repsFromTo2 ctr2;/* [case(2)] */
114}/* [nodiscriminant] */;
115
116struct repsFromToBlob {
117	uint32_t version;
118	uint32_t reserved;
119	union repsFromTo ctr;/* [switch_is(version)] */
120}/* [public] */;
121
122struct partialAttributeSetCtr1 {
123	uint32_t count;
124	enum drsuapi_DsAttributeId *array;
125};
126
127union partialAttributeSetCtr {
128	struct partialAttributeSetCtr1 ctr1;/* [case] */
129}/* [nodiscriminant] */;
130
131struct partialAttributeSetBlob {
132	uint32_t version;
133	uint32_t reserved;
134	union partialAttributeSetCtr ctr;/* [switch_is(version)] */
135}/* [public] */;
136
137enum prefixMapVersion
138#ifndef USE_UINT_ENUMS
139 {
140	PREFIX_MAP_VERSION_DSDB=(int)(0x44534442)
141}
142#else
143 { __donnot_use_enum_prefixMapVersion=0x7FFFFFFF}
144#define PREFIX_MAP_VERSION_DSDB ( 0x44534442 )
145#endif
146;
147
148union prefixMapCtr {
149	struct drsuapi_DsReplicaOIDMapping_Ctr dsdb;/* [case(PREFIX_MAP_VERSION_DSDB)] */
150}/* [nodiscriminant] */;
151
152struct prefixMapBlob {
153	enum prefixMapVersion version;
154	uint32_t reserved;
155	union prefixMapCtr ctr;/* [switch_is(version)] */
156}/* [public] */;
157
158union ldapControlDirSyncExtra {
159	struct replUpToDateVectorBlob uptodateness_vector;/* [default] */
160}/* [gensize,nodiscriminant] */;
161
162struct ldapControlDirSyncBlob {
163	uint32_t u1;/* [value(3)] */
164	NTTIME time;
165	uint32_t u2;
166	uint32_t u3;
167	uint32_t extra_length;/* [value(ndr_size_ldapControlDirSyncExtra(&extra,extra.uptodateness_vector.version,ndr->iconv_convenience,0))] */
168	struct drsuapi_DsReplicaHighWaterMark highwatermark;
169	struct GUID guid1;
170	union ldapControlDirSyncExtra extra;/* [switch_is(extra_length)] */
171};
172
173struct ldapControlDirSyncCookie {
174	const char *msds;/* [value("MSDS"),charset(DOS)] */
175	struct ldapControlDirSyncBlob blob;/* [subcontext(0)] */
176}/* [relative_base,public] */;
177
178struct supplementalCredentialsPackage {
179	uint16_t name_len;/* [value(2*strlen_m(name))] */
180	uint16_t data_len;/* [value(strlen(data))] */
181	uint16_t reserved;
182	const char *name;/* [charset(UTF16)] */
183	const char *data;/* [charset(DOS)] */
184};
185
186enum supplementalCredentialsSignature
187#ifndef USE_UINT_ENUMS
188 {
189	SUPPLEMENTAL_CREDENTIALS_SIGNATURE=(int)(0x0050)
190}
191#else
192 { __donnot_use_enum_supplementalCredentialsSignature=0x7FFFFFFF}
193#define SUPPLEMENTAL_CREDENTIALS_SIGNATURE ( 0x0050 )
194#endif
195;
196
197struct supplementalCredentialsSubBlob {
198	const char *prefix;/* [value(SUPPLEMENTAL_CREDENTIALS_PREFIX),charset(UTF16)] */
199	enum supplementalCredentialsSignature signature;/* [value(SUPPLEMENTAL_CREDENTIALS_SIGNATURE)] */
200	uint16_t num_packages;
201	struct supplementalCredentialsPackage *packages;
202}/* [gensize] */;
203
204struct supplementalCredentialsBlob {
205	uint32_t unknown1;/* [value(0)] */
206	uint32_t __ndr_size;/* [value(ndr_size_supplementalCredentialsSubBlob(&sub,ndr->iconv_convenience,ndr->flags))] */
207	uint32_t unknown2;/* [value(0)] */
208	struct supplementalCredentialsSubBlob sub;/* [subcontext_size(__ndr_size),subcontext(0)] */
209	uint8_t unknown3;/* [value(0)] */
210}/* [public] */;
211
212struct package_PackagesBlob {
213	const char ** names;/* [flag(LIBNDR_FLAG_STR_NOTERM|LIBNDR_FLAG_REMAINING)] */
214}/* [public] */;
215
216struct package_PrimaryKerberosString {
217	uint16_t length;/* [value(2*strlen_m(string))] */
218	uint16_t size;/* [value(2*strlen_m(string))] */
219	const char * string;/* [relative,subcontext_size(size),subcontext(0),flag(LIBNDR_FLAG_STR_NOTERM|LIBNDR_FLAG_REMAINING)] */
220};
221
222struct package_PrimaryKerberosKey3 {
223	uint16_t reserved1;/* [value(0)] */
224	uint16_t reserved2;/* [value(0)] */
225	uint32_t reserved3;/* [value(0)] */
226	uint32_t keytype;
227	uint32_t value_len;/* [value((value?value->length:0))] */
228	DATA_BLOB *value;/* [relative,subcontext_size(value_len),subcontext(0),flag(LIBNDR_FLAG_REMAINING)] */
229};
230
231struct package_PrimaryKerberosCtr3 {
232	uint16_t num_keys;
233	uint16_t num_old_keys;
234	struct package_PrimaryKerberosString salt;
235	struct package_PrimaryKerberosKey3 *keys;
236	struct package_PrimaryKerberosKey3 *old_keys;
237	uint32_t padding1;/* [value(0)] */
238	uint32_t padding2;/* [value(0)] */
239	uint32_t padding3;/* [value(0)] */
240	uint32_t padding4;/* [value(0)] */
241	uint32_t padding5;/* [value(0)] */
242};
243
244struct package_PrimaryKerberosKey4 {
245	uint16_t reserved1;/* [value(0)] */
246	uint16_t reserved2;/* [value(0)] */
247	uint32_t reserved3;/* [value(0)] */
248	uint32_t iteration_count;
249	uint32_t keytype;
250	uint32_t value_len;/* [value((value?value->length:0))] */
251	DATA_BLOB *value;/* [relative,subcontext_size(value_len),subcontext(0),flag(LIBNDR_FLAG_REMAINING)] */
252};
253
254struct package_PrimaryKerberosCtr4 {
255	uint16_t num_keys;
256	uint16_t num_service_keys;/* [value(0)] */
257	uint16_t num_old_keys;
258	uint16_t num_older_keys;
259	struct package_PrimaryKerberosString salt;
260	uint32_t default_iteration_count;
261	struct package_PrimaryKerberosKey4 *keys;
262	struct package_PrimaryKerberosKey4 *service_keys;
263	struct package_PrimaryKerberosKey4 *old_keys;
264	struct package_PrimaryKerberosKey4 *older_keys;
265};
266
267union package_PrimaryKerberosCtr {
268	struct package_PrimaryKerberosCtr3 ctr3;/* [case(3)] */
269	struct package_PrimaryKerberosCtr4 ctr4;/* [case(4)] */
270}/* [nodiscriminant] */;
271
272struct package_PrimaryKerberosBlob {
273	uint16_t version;
274	uint16_t flags;/* [value(0)] */
275	union package_PrimaryKerberosCtr ctr;/* [switch_is(version)] */
276}/* [public] */;
277
278struct package_PrimaryCLEARTEXTBlob {
279	DATA_BLOB cleartext;/* [flag(LIBNDR_FLAG_REMAINING)] */
280}/* [public] */;
281
282struct package_PrimaryWDigestHash {
283	uint8_t hash[16];
284}/* [flag(LIBNDR_PRINT_ARRAY_HEX)] */;
285
286struct package_PrimaryWDigestBlob {
287	uint16_t unknown1;/* [value(0x31)] */
288	uint8_t unknown2;/* [value(0x01)] */
289	uint8_t num_hashes;
290	uint32_t unknown3;/* [value(0)] */
291	uint64_t uuknown4;/* [value(0)] */
292	struct package_PrimaryWDigestHash *hashes;
293}/* [public] */;
294
295struct AuthInfoNone {
296	uint32_t size;/* [value(0)] */
297};
298
299struct AuthInfoNT4Owf {
300	uint32_t size;/* [value(16)] */
301	struct samr_Password password;
302};
303
304struct AuthInfoClear {
305	uint32_t size;
306	uint8_t *password;
307};
308
309struct AuthInfoVersion {
310	uint32_t size;/* [value(4)] */
311	uint32_t version;
312};
313
314union AuthInfo {
315	struct AuthInfoNone none;/* [case(TRUST_AUTH_TYPE_NONE)] */
316	struct AuthInfoNT4Owf nt4owf;/* [case(TRUST_AUTH_TYPE_NT4OWF)] */
317	struct AuthInfoClear clear;/* [case(TRUST_AUTH_TYPE_CLEAR)] */
318	struct AuthInfoVersion version;/* [case(TRUST_AUTH_TYPE_VERSION)] */
319}/* [nodiscriminant] */;
320
321struct AuthenticationInformation {
322	NTTIME LastUpdateTime;
323	enum lsa_TrustAuthType AuthType;
324	union AuthInfo AuthInfo;/* [switch_is(AuthType)] */
325	DATA_BLOB _pad;/* [flag(LIBNDR_FLAG_ALIGN4)] */
326}/* [public] */;
327
328struct AuthenticationInformationArray {
329	struct AuthenticationInformation *array;/* [size_is] */
330}/* [noprint,nopush,nopull] */;
331
332struct trustAuthInOutBlob {
333	uint32_t count;
334	struct AuthenticationInformationArray *current;/* [relative] */
335	struct AuthenticationInformationArray *previous;/* [relative] */
336}/* [noprint,gensize,nopull,public,nopush] */;
337
338struct trustCurrentPasswords {
339	uint32_t count;
340	struct AuthenticationInformation **current;/* [relative] */
341}/* [gensize,public] */;
342
343struct trustDomainPasswords {
344	uint8_t confounder[512];
345	struct trustCurrentPasswords outgoing;/* [subcontext_size(outgoing_size),subcontext(0)] */
346	struct trustCurrentPasswords incoming;/* [subcontext_size(incoming_size),subcontext(0)] */
347	uint32_t outgoing_size;/* [value(ndr_size_trustCurrentPasswords(&outgoing,ndr->iconv_convenience,ndr->flags))] */
348	uint32_t incoming_size;/* [value(ndr_size_trustCurrentPasswords(&incoming,ndr->iconv_convenience,ndr->flags))] */
349}/* [public,nopull] */;
350
351struct DsCompressedChunk {
352	uint32_t marker;
353	DATA_BLOB data;
354}/* [public] */;
355
356struct ExtendedErrorAString {
357	uint16_t __size;
358	const char *string;/* [unique,charset(DOS),size_is(__size)] */
359};
360
361struct ExtendedErrorUString {
362	uint16_t __size;
363	const char *string;/* [unique,charset(UTF16),size_is(__size)] */
364};
365
366struct ExtendedErrorBlob {
367	uint16_t length;
368	uint8_t *data;/* [unique,size_is(length)] */
369};
370
371enum ExtendedErrorComputerNamePresent
372#ifndef USE_UINT_ENUMS
373 {
374	EXTENDED_ERROR_COMPUTER_NAME_PRESENT=(int)(1),
375	EXTENDED_ERROR_COMPUTER_NAME_NOT_PRESENT=(int)(2)
376}
377#else
378 { __donnot_use_enum_ExtendedErrorComputerNamePresent=0x7FFFFFFF}
379#define EXTENDED_ERROR_COMPUTER_NAME_PRESENT ( 1 )
380#define EXTENDED_ERROR_COMPUTER_NAME_NOT_PRESENT ( 2 )
381#endif
382;
383
384union ExtendedErrorComputerNameU {
385	struct ExtendedErrorUString name;/* [case(EXTENDED_ERROR_COMPUTER_NAME_PRESENT)] */
386}/* [switch_type(ExtendedErrorComputerNamePresent)] */;
387
388struct ExtendedErrorComputerName {
389	enum ExtendedErrorComputerNamePresent present;
390	union ExtendedErrorComputerNameU n;/* [switch_is(present)] */
391};
392
393enum ExtendedErrorParamType
394#ifndef USE_UINT_ENUMS
395 {
396	EXTENDED_ERROR_PARAM_TYPE_ASCII_STRING=(int)(1),
397	EXTENDED_ERROR_PARAM_TYPE_UNICODE_STRING=(int)(2),
398	EXTENDED_ERROR_PARAM_TYPE_UINT32=(int)(3),
399	EXTENDED_ERROR_PARAM_TYPE_UINT16=(int)(4),
400	EXTENDED_ERROR_PARAM_TYPE_UINT64=(int)(5),
401	EXTENDED_ERROR_PARAM_TYPE_NONE=(int)(6),
402	EXTENDED_ERROR_PARAM_TYPE_BLOB=(int)(7)
403}
404#else
405 { __donnot_use_enum_ExtendedErrorParamType=0x7FFFFFFF}
406#define EXTENDED_ERROR_PARAM_TYPE_ASCII_STRING ( 1 )
407#define EXTENDED_ERROR_PARAM_TYPE_UNICODE_STRING ( 2 )
408#define EXTENDED_ERROR_PARAM_TYPE_UINT32 ( 3 )
409#define EXTENDED_ERROR_PARAM_TYPE_UINT16 ( 4 )
410#define EXTENDED_ERROR_PARAM_TYPE_UINT64 ( 5 )
411#define EXTENDED_ERROR_PARAM_TYPE_NONE ( 6 )
412#define EXTENDED_ERROR_PARAM_TYPE_BLOB ( 7 )
413#endif
414;
415
416union ExtendedErrorParamU {
417	struct ExtendedErrorAString a_string;/* [case(EXTENDED_ERROR_PARAM_TYPE_ASCII_STRING)] */
418	struct ExtendedErrorUString u_string;/* [case(EXTENDED_ERROR_PARAM_TYPE_UNICODE_STRING)] */
419	uint32_t uint32;/* [case(EXTENDED_ERROR_PARAM_TYPE_UINT32)] */
420	uint16_t uint16;/* [case(EXTENDED_ERROR_PARAM_TYPE_UINT16)] */
421	uint64_t uint64;/* [case(EXTENDED_ERROR_PARAM_TYPE_UINT64)] */
422	struct ExtendedErrorBlob blob;/* [case(EXTENDED_ERROR_PARAM_TYPE_BLOB)] */
423}/* [switch_type(ExtendedErrorParamType)] */;
424
425struct ExtendedErrorParam {
426	enum ExtendedErrorParamType type;
427	union ExtendedErrorParamU p;/* [switch_is(type)] */
428};
429
430struct ExtendedErrorInfo {
431	struct ExtendedErrorInfo *next;/* [unique] */
432	struct ExtendedErrorComputerName computer_name;
433	uint64_t pid;
434	NTTIME time;
435	uint32_t generating_component;
436	WERROR status;
437	uint16_t detection_location;
438	uint16_t flags;
439	uint16_t num_params;
440	struct ExtendedErrorParam *params;/* [size_is(num_params)] */
441}/* [public] */;
442
443struct ExtendedErrorInfoPtr {
444	struct ExtendedErrorInfo *info;/* [unique] */
445};
446
447
448struct decode_replPropertyMetaData {
449	struct {
450		struct replPropertyMetaDataBlob blob;
451	} in;
452
453};
454
455
456struct decode_replUpToDateVector {
457	struct {
458		struct replUpToDateVectorBlob blob;
459	} in;
460
461};
462
463
464struct decode_repsFromTo {
465	struct {
466		struct repsFromToBlob blob;
467	} in;
468
469};
470
471
472struct decode_partialAttributeSet {
473	struct {
474		struct partialAttributeSetBlob blob;
475	} in;
476
477};
478
479
480struct decode_prefixMap {
481	struct {
482		struct prefixMapBlob blob;
483	} in;
484
485};
486
487
488struct decode_ldapControlDirSync {
489	struct {
490		struct ldapControlDirSyncCookie cookie;
491	} in;
492
493};
494
495
496struct decode_supplementalCredentials {
497	struct {
498		struct supplementalCredentialsBlob blob;
499	} in;
500
501};
502
503
504struct decode_Packages {
505	struct {
506		struct package_PackagesBlob blob;
507	} in;
508
509};
510
511
512struct decode_PrimaryKerberos {
513	struct {
514		struct package_PrimaryKerberosBlob blob;
515	} in;
516
517};
518
519
520struct decode_PrimaryCLEARTEXT {
521	struct {
522		struct package_PrimaryCLEARTEXTBlob blob;
523	} in;
524
525};
526
527
528struct decode_PrimaryWDigest {
529	struct {
530		struct package_PrimaryWDigestBlob blob;
531	} in;
532
533};
534
535
536struct decode_trustAuthInOut {
537	struct {
538		struct trustAuthInOutBlob blob;
539	} in;
540
541};
542
543
544struct decode_trustDomainPasswords {
545	struct {
546		struct trustDomainPasswords blob;
547	} in;
548
549};
550
551
552struct decode_ExtendedErrorInfo {
553	struct {
554		struct ExtendedErrorInfoPtr ptr;/* [subcontext(0xFFFFFC01)] */
555	} in;
556
557};
558
559#endif /* _HEADER_drsblobs */
560