1 /* header auto-generated by pidl */
5 #include "libcli/util/ntstatus.h"
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 #include "librpc/gen_ndr/security.h"
12 #ifndef _HEADER_drsblobs
13 #define _HEADER_drsblobs
15 #define SUPPLEMENTAL_CREDENTIALS_PREFIX ( " " )
16 struct replPropertyMetaData1 {
17 enum drsuapi_DsAttributeId attid;
19 NTTIME originating_change_time;
20 struct GUID originating_invocation_id;
21 uint64_t originating_usn;
25 struct replPropertyMetaDataCtr1 {
27 uint32_t reserved;/* [value(0)] */
28 struct replPropertyMetaData1 *array;
31 union replPropertyMetaDataCtr {
32 struct replPropertyMetaDataCtr1 ctr1;/* [case] */
33 }/* [nodiscriminant] */;
35 struct replPropertyMetaDataBlob {
37 uint32_t reserved;/* [value(0)] */
38 union replPropertyMetaDataCtr ctr;/* [switch_is(version)] */
41 struct replUpToDateVectorCtr1 {
43 uint32_t reserved;/* [value(0)] */
44 struct drsuapi_DsReplicaCursor *cursors;
47 struct replUpToDateVectorCtr2 {
49 uint32_t reserved;/* [value(0)] */
50 struct drsuapi_DsReplicaCursor2 *cursors;
53 union replUpToDateVectorCtr {
54 struct replUpToDateVectorCtr1 ctr1;/* [case] */
55 struct replUpToDateVectorCtr2 ctr2;/* [case(2)] */
56 }/* [nodiscriminant] */;
58 struct replUpToDateVectorBlob {
60 uint32_t reserved;/* [value(0)] */
61 union replUpToDateVectorCtr ctr;/* [switch_is(version)] */
64 struct repsFromTo1OtherInfo {
65 uint32_t __dns_name_size;/* [value(strlen(dns_name)+1)] */
66 const char *dns_name;/* [charset(DOS)] */
67 }/* [gensize,public] */;
70 uint32_t blobsize;/* [value(ndr_size_repsFromTo1(this,ndr->iconv_convenience,ndr->flags)+8)] */
71 uint32_t consecutive_sync_failures;
74 WERROR result_last_attempt;
75 struct repsFromTo1OtherInfo *other_info;/* [relative] */
76 uint32_t other_info_length;/* [value(ndr_size_repsFromTo1OtherInfo(other_info,ndr->iconv_convenience,ndr->flags))] */
77 uint32_t replica_flags;
79 uint32_t reserved;/* [value(0)] */
80 struct drsuapi_DsReplicaHighWaterMark highwatermark;
81 struct GUID source_dsa_obj_guid;
82 struct GUID source_dsa_invocation_id;
83 struct GUID transport_guid;
84 }/* [gensize,public,flag(LIBNDR_PRINT_ARRAY_HEX)] */;
86 struct repsFromTo2OtherInfo {
87 uint32_t __ndr_size;/* [value(ndr_size_repsFromTo2OtherInfo(this,ndr->iconv_convenience,ndr->flags))] */
88 const char * dns_name1;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
90 const char * dns_name2;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
92 }/* [relative_base,gensize,public] */;
95 uint32_t blobsize;/* [value(ndr_size_repsFromTo2(this,ndr->iconv_convenience,ndr->flags)+8)] */
96 uint32_t consecutive_sync_failures;
99 WERROR result_last_attempt;
100 struct repsFromTo2OtherInfo *other_info;/* [relative] */
101 uint32_t other_info_length;/* [value(ndr_size_repsFromTo2OtherInfo(other_info,ndr->iconv_convenience,ndr->flags))] */
102 uint32_t replica_flags;
103 uint8_t schedule[84];
104 uint32_t reserved;/* [value(0)] */
105 struct drsuapi_DsReplicaHighWaterMark highwatermark;
106 struct GUID source_dsa_obj_guid;
107 struct GUID source_dsa_invocation_id;
108 struct GUID transport_guid;
110 }/* [gensize,public,flag(LIBNDR_PRINT_ARRAY_HEX)] */;
113 struct repsFromTo1 ctr1;/* [case] */
114 struct repsFromTo2 ctr2;/* [case(2)] */
115 }/* [nodiscriminant] */;
117 struct repsFromToBlob {
119 uint32_t reserved;/* [value(0)] */
120 union repsFromTo ctr;/* [switch_is(version)] */
123 struct partialAttributeSetCtr1 {
125 enum drsuapi_DsAttributeId *array;
128 union partialAttributeSetCtr {
129 struct partialAttributeSetCtr1 ctr1;/* [case] */
130 }/* [nodiscriminant] */;
132 struct partialAttributeSetBlob {
134 uint32_t reserved;/* [value(0)] */
135 union partialAttributeSetCtr ctr;/* [switch_is(version)] */
138 struct schemaInfoBlob {
139 uint8_t marker;/* [value(0xFF)] */
140 uint32_t revision;/* [flag(LIBNDR_FLAG_BIGENDIAN)] */
141 struct GUID invocation_id;
142 }/* [public,flag(LIBNDR_FLAG_NOALIGN)] */;
144 struct drsuapi_MSPrefixMap_Entry {
148 }/* [noprint,flag(LIBNDR_FLAG_NOALIGN)] */;
150 struct drsuapi_MSPrefixMap_Ctr {
151 uint32_t num_entries;
152 uint32_t __ndr_size;/* [value(ndr_size_drsuapi_MSPrefixMap_Ctr(r,ndr->iconv_convenience,ndr->flags))] */
153 struct drsuapi_MSPrefixMap_Entry *entries;
154 }/* [gensize,public] */;
156 enum prefixMapVersion
157 #ifndef USE_UINT_ENUMS
159 PREFIX_MAP_VERSION_DSDB=(int)(0x44534442)
162 { __donnot_use_enum_prefixMapVersion=0x7FFFFFFF}
163 #define PREFIX_MAP_VERSION_DSDB ( 0x44534442 )
168 struct drsuapi_DsReplicaOIDMapping_Ctr dsdb;/* [case(PREFIX_MAP_VERSION_DSDB)] */
169 }/* [nodiscriminant] */;
171 struct prefixMapBlob {
172 enum prefixMapVersion version;
173 uint32_t reserved;/* [value(0)] */
174 union prefixMapCtr ctr;/* [switch_is(version)] */
177 union ldapControlDirSyncExtra {
178 struct replUpToDateVectorBlob uptodateness_vector;/* [default] */
179 }/* [gensize,nodiscriminant] */;
181 struct ldapControlDirSyncBlob {
182 uint32_t u1;/* [value(3)] */
186 uint32_t extra_length;/* [value(ndr_size_ldapControlDirSyncExtra(&extra,extra.uptodateness_vector.version,ndr->iconv_convenience,0))] */
187 struct drsuapi_DsReplicaHighWaterMark highwatermark;
189 union ldapControlDirSyncExtra extra;/* [switch_is(extra_length)] */
192 struct ldapControlDirSyncCookie {
193 const char *msds;/* [value("MSDS"),charset(DOS)] */
194 struct ldapControlDirSyncBlob blob;/* [subcontext(0)] */
195 }/* [relative_base,public] */;
197 struct supplementalCredentialsPackage {
198 uint16_t name_len;/* [value(2*strlen_m(name))] */
199 uint16_t data_len;/* [value(strlen(data))] */
201 const char *name;/* [charset(UTF16)] */
202 const char *data;/* [charset(DOS)] */
205 enum supplementalCredentialsSignature
206 #ifndef USE_UINT_ENUMS
208 SUPPLEMENTAL_CREDENTIALS_SIGNATURE=(int)(0x0050)
211 { __donnot_use_enum_supplementalCredentialsSignature=0x7FFFFFFF}
212 #define SUPPLEMENTAL_CREDENTIALS_SIGNATURE ( 0x0050 )
216 struct supplementalCredentialsSubBlob {
217 const char *prefix;/* [value(SUPPLEMENTAL_CREDENTIALS_PREFIX),charset(UTF16)] */
218 enum supplementalCredentialsSignature signature;/* [value(SUPPLEMENTAL_CREDENTIALS_SIGNATURE)] */
219 uint16_t num_packages;
220 struct supplementalCredentialsPackage *packages;
223 struct supplementalCredentialsBlob {
224 uint32_t unknown1;/* [value(0)] */
225 uint32_t __ndr_size;/* [value(ndr_size_supplementalCredentialsSubBlob(&sub,ndr->iconv_convenience,ndr->flags))] */
226 uint32_t unknown2;/* [value(0)] */
227 struct supplementalCredentialsSubBlob sub;/* [subcontext_size(__ndr_size),subcontext(0)] */
228 uint8_t unknown3;/* [value(0)] */
231 struct package_PackagesBlob {
232 const char ** names;/* [flag(LIBNDR_FLAG_STR_NOTERM|LIBNDR_FLAG_REMAINING)] */
235 struct package_PrimaryKerberosString {
236 uint16_t length;/* [value(2*strlen_m(string))] */
237 uint16_t size;/* [value(2*strlen_m(string))] */
238 const char * string;/* [relative,subcontext_size(size),subcontext(0),flag(LIBNDR_FLAG_STR_NOTERM|LIBNDR_FLAG_REMAINING)] */
241 struct package_PrimaryKerberosKey3 {
242 uint16_t reserved1;/* [value(0)] */
243 uint16_t reserved2;/* [value(0)] */
244 uint32_t reserved3;/* [value(0)] */
246 uint32_t value_len;/* [value((value?value->length:0))] */
247 DATA_BLOB *value;/* [relative,subcontext_size(value_len),subcontext(0),flag(LIBNDR_FLAG_REMAINING)] */
250 struct package_PrimaryKerberosCtr3 {
252 uint16_t num_old_keys;
253 struct package_PrimaryKerberosString salt;
254 struct package_PrimaryKerberosKey3 *keys;
255 struct package_PrimaryKerberosKey3 *old_keys;
256 uint32_t padding1;/* [value(0)] */
257 uint32_t padding2;/* [value(0)] */
258 uint32_t padding3;/* [value(0)] */
259 uint32_t padding4;/* [value(0)] */
260 uint32_t padding5;/* [value(0)] */
263 struct package_PrimaryKerberosKey4 {
264 uint16_t reserved1;/* [value(0)] */
265 uint16_t reserved2;/* [value(0)] */
266 uint32_t reserved3;/* [value(0)] */
267 uint32_t iteration_count;
269 uint32_t value_len;/* [value((value?value->length:0))] */
270 DATA_BLOB *value;/* [relative,subcontext_size(value_len),subcontext(0),flag(LIBNDR_FLAG_REMAINING)] */
273 struct package_PrimaryKerberosCtr4 {
275 uint16_t num_service_keys;/* [value(0)] */
276 uint16_t num_old_keys;
277 uint16_t num_older_keys;
278 struct package_PrimaryKerberosString salt;
279 uint32_t default_iteration_count;
280 struct package_PrimaryKerberosKey4 *keys;
281 struct package_PrimaryKerberosKey4 *service_keys;
282 struct package_PrimaryKerberosKey4 *old_keys;
283 struct package_PrimaryKerberosKey4 *older_keys;
286 union package_PrimaryKerberosCtr {
287 struct package_PrimaryKerberosCtr3 ctr3;/* [case(3)] */
288 struct package_PrimaryKerberosCtr4 ctr4;/* [case(4)] */
289 }/* [nopython,nodiscriminant] */;
291 struct package_PrimaryKerberosBlob {
293 uint16_t flags;/* [value(0)] */
294 union package_PrimaryKerberosCtr ctr;/* [switch_is(version)] */
295 }/* [nopython,public] */;
297 struct package_PrimaryCLEARTEXTBlob {
298 DATA_BLOB cleartext;/* [flag(LIBNDR_FLAG_REMAINING)] */
301 struct package_PrimaryWDigestHash {
303 }/* [flag(LIBNDR_PRINT_ARRAY_HEX)] */;
305 struct package_PrimaryWDigestBlob {
306 uint16_t unknown1;/* [value(0x31)] */
307 uint8_t unknown2;/* [value(0x01)] */
309 uint32_t unknown3;/* [value(0)] */
310 uint64_t uuknown4;/* [value(0)] */
311 struct package_PrimaryWDigestHash *hashes;
314 struct AuthInfoNone {
315 uint32_t size;/* [value(0)] */
318 struct AuthInfoNT4Owf {
319 uint32_t size;/* [value(16)] */
320 struct samr_Password password;
323 struct AuthInfoClear {
328 struct AuthInfoVersion {
329 uint32_t size;/* [value(4)] */
334 struct AuthInfoNone none;/* [case(TRUST_AUTH_TYPE_NONE)] */
335 struct AuthInfoNT4Owf nt4owf;/* [case(TRUST_AUTH_TYPE_NT4OWF)] */
336 struct AuthInfoClear clear;/* [case(TRUST_AUTH_TYPE_CLEAR)] */
337 struct AuthInfoVersion version;/* [case(TRUST_AUTH_TYPE_VERSION)] */
338 }/* [nodiscriminant] */;
340 struct AuthenticationInformation {
341 NTTIME LastUpdateTime;
342 enum lsa_TrustAuthType AuthType;
343 union AuthInfo AuthInfo;/* [switch_is(AuthType)] */
344 DATA_BLOB _pad;/* [flag(LIBNDR_FLAG_ALIGN4)] */
347 struct AuthenticationInformationArray {
348 struct AuthenticationInformation *array;/* [size_is] */
349 }/* [noprint,nopush,nopull] */;
351 struct trustAuthInOutBlob {
353 struct AuthenticationInformationArray *current;/* [relative] */
354 struct AuthenticationInformationArray *previous;/* [relative] */
355 }/* [noprint,gensize,nopull,public,nopush] */;
357 struct trustCurrentPasswords {
359 struct AuthenticationInformation **current;/* [relative] */
360 }/* [gensize,public] */;
362 struct trustDomainPasswords {
363 uint8_t confounder[512];
364 struct trustCurrentPasswords outgoing;/* [subcontext_size(outgoing_size),subcontext(0)] */
365 struct trustCurrentPasswords incoming;/* [subcontext_size(incoming_size),subcontext(0)] */
366 uint32_t outgoing_size;/* [value(ndr_size_trustCurrentPasswords(&outgoing,ndr->iconv_convenience,ndr->flags))] */
367 uint32_t incoming_size;/* [value(ndr_size_trustCurrentPasswords(&incoming,ndr->iconv_convenience,ndr->flags))] */
368 }/* [public,nopull] */;
370 struct DsCompressedChunk {
375 struct ExtendedErrorAString {
377 const char *string;/* [unique,charset(DOS),size_is(__size)] */
380 struct ExtendedErrorUString {
382 const char *string;/* [unique,charset(UTF16),size_is(__size)] */
385 struct ExtendedErrorBlob {
387 uint8_t *data;/* [unique,size_is(length)] */
390 enum ExtendedErrorComputerNamePresent
391 #ifndef USE_UINT_ENUMS
393 EXTENDED_ERROR_COMPUTER_NAME_PRESENT=(int)(1),
394 EXTENDED_ERROR_COMPUTER_NAME_NOT_PRESENT=(int)(2)
397 { __donnot_use_enum_ExtendedErrorComputerNamePresent=0x7FFFFFFF}
398 #define EXTENDED_ERROR_COMPUTER_NAME_PRESENT ( 1 )
399 #define EXTENDED_ERROR_COMPUTER_NAME_NOT_PRESENT ( 2 )
403 union ExtendedErrorComputerNameU {
404 struct ExtendedErrorUString name;/* [case(EXTENDED_ERROR_COMPUTER_NAME_PRESENT)] */
405 }/* [switch_type(ExtendedErrorComputerNamePresent)] */;
407 struct ExtendedErrorComputerName {
408 enum ExtendedErrorComputerNamePresent present;
409 union ExtendedErrorComputerNameU n;/* [switch_is(present)] */
412 enum ExtendedErrorParamType
413 #ifndef USE_UINT_ENUMS
415 EXTENDED_ERROR_PARAM_TYPE_ASCII_STRING=(int)(1),
416 EXTENDED_ERROR_PARAM_TYPE_UNICODE_STRING=(int)(2),
417 EXTENDED_ERROR_PARAM_TYPE_UINT32=(int)(3),
418 EXTENDED_ERROR_PARAM_TYPE_UINT16=(int)(4),
419 EXTENDED_ERROR_PARAM_TYPE_UINT64=(int)(5),
420 EXTENDED_ERROR_PARAM_TYPE_NONE=(int)(6),
421 EXTENDED_ERROR_PARAM_TYPE_BLOB=(int)(7)
424 { __donnot_use_enum_ExtendedErrorParamType=0x7FFFFFFF}
425 #define EXTENDED_ERROR_PARAM_TYPE_ASCII_STRING ( 1 )
426 #define EXTENDED_ERROR_PARAM_TYPE_UNICODE_STRING ( 2 )
427 #define EXTENDED_ERROR_PARAM_TYPE_UINT32 ( 3 )
428 #define EXTENDED_ERROR_PARAM_TYPE_UINT16 ( 4 )
429 #define EXTENDED_ERROR_PARAM_TYPE_UINT64 ( 5 )
430 #define EXTENDED_ERROR_PARAM_TYPE_NONE ( 6 )
431 #define EXTENDED_ERROR_PARAM_TYPE_BLOB ( 7 )
435 union ExtendedErrorParamU {
436 struct ExtendedErrorAString a_string;/* [case(EXTENDED_ERROR_PARAM_TYPE_ASCII_STRING)] */
437 struct ExtendedErrorUString u_string;/* [case(EXTENDED_ERROR_PARAM_TYPE_UNICODE_STRING)] */
438 uint32_t uint32;/* [case(EXTENDED_ERROR_PARAM_TYPE_UINT32)] */
439 uint16_t uint16;/* [case(EXTENDED_ERROR_PARAM_TYPE_UINT16)] */
440 uint64_t uint64;/* [case(EXTENDED_ERROR_PARAM_TYPE_UINT64)] */
441 struct ExtendedErrorBlob blob;/* [case(EXTENDED_ERROR_PARAM_TYPE_BLOB)] */
442 }/* [switch_type(ExtendedErrorParamType)] */;
444 struct ExtendedErrorParam {
445 enum ExtendedErrorParamType type;
446 union ExtendedErrorParamU p;/* [switch_is(type)] */
449 struct ExtendedErrorInfo {
450 struct ExtendedErrorInfo *next;/* [unique] */
451 struct ExtendedErrorComputerName computer_name;
454 uint32_t generating_component;
456 uint16_t detection_location;
459 struct ExtendedErrorParam *params;/* [size_is(num_params)] */
462 struct ExtendedErrorInfoPtr {
463 struct ExtendedErrorInfo *info;/* [unique] */
466 struct ForestTrustString {
467 uint32_t size;/* [value(strlen_m(string))] */
468 const char *string;/* [charset(UTF8)] */
471 struct ForestTrustDataDomainInfo {
472 uint32_t sid_size;/* [value(ndr_size_dom_sid0(&sid,ndr->flags))] */
473 struct dom_sid sid;/* [subcontext_size(sid_size),subcontext(0)] */
474 struct ForestTrustString dns_name;
475 struct ForestTrustString netbios_name;
476 }/* [flag(LIBNDR_FLAG_NOALIGN)] */;
478 struct ForestTrustDataBinaryData {
481 }/* [flag(LIBNDR_FLAG_NOALIGN)] */;
483 union ForestTrustData {
484 struct ForestTrustString name;/* [case(FOREST_TRUST_TOP_LEVEL_NAME)] */
485 struct ForestTrustDataDomainInfo info;/* [case(FOREST_TRUST_DOMAIN_INFO)] */
486 struct ForestTrustDataBinaryData data;/* [default] */
487 }/* [nodiscriminant] */;
489 enum ForestTrustInfoRecordType
490 #ifndef USE_UINT_ENUMS
492 FOREST_TRUST_TOP_LEVEL_NAME=(int)(0),
493 FOREST_TRUST_TOP_LEVEL_NAME_EX=(int)(1),
494 FOREST_TRUST_DOMAIN_INFO=(int)(2)
497 { __donnot_use_enum_ForestTrustInfoRecordType=0x7FFFFFFF}
498 #define FOREST_TRUST_TOP_LEVEL_NAME ( 0 )
499 #define FOREST_TRUST_TOP_LEVEL_NAME_EX ( 1 )
500 #define FOREST_TRUST_DOMAIN_INFO ( 2 )
504 struct ForestTrustInfoRecord {
507 enum ForestTrustInfoRecordType type;
508 union ForestTrustData data;/* [switch_is(type)] */
509 }/* [gensize,public,flag(LIBNDR_FLAG_NOALIGN)] */;
511 struct ForestTrustInfoRecordArmor {
512 uint32_t record_size;/* [value(ndr_size_ForestTrustInfoRecord(&record,ndr->iconv_convenience,ndr->flags))] */
513 struct ForestTrustInfoRecord record;
514 }/* [flag(LIBNDR_FLAG_NOALIGN)] */;
516 struct ForestTrustInfo {
519 struct ForestTrustInfoRecordArmor *records;
520 }/* [public,flag(LIBNDR_FLAG_NOALIGN)] */;
523 struct decode_replPropertyMetaData {
525 struct replPropertyMetaDataBlob blob;
531 struct decode_replUpToDateVector {
533 struct replUpToDateVectorBlob blob;
539 struct decode_repsFromTo {
541 struct repsFromToBlob blob;
547 struct decode_partialAttributeSet {
549 struct partialAttributeSetBlob blob;
555 struct decode_prefixMap {
557 struct prefixMapBlob blob;
563 struct decode_ldapControlDirSync {
565 struct ldapControlDirSyncCookie cookie;
571 struct decode_supplementalCredentials {
573 struct supplementalCredentialsBlob blob;
579 struct decode_Packages {
581 struct package_PackagesBlob blob;
587 struct decode_PrimaryKerberos {
589 struct package_PrimaryKerberosBlob blob;
595 struct decode_PrimaryCLEARTEXT {
597 struct package_PrimaryCLEARTEXTBlob blob;
603 struct decode_PrimaryWDigest {
605 struct package_PrimaryWDigestBlob blob;
611 struct decode_trustAuthInOut {
613 struct trustAuthInOutBlob blob;
619 struct decode_trustDomainPasswords {
621 struct trustDomainPasswords blob;
627 struct decode_ExtendedErrorInfo {
629 struct ExtendedErrorInfoPtr ptr;/* [subcontext(0xFFFFFC01)] */
635 struct decode_ForestTrustInfo {
637 struct ForestTrustInfo blob;
642 #endif /* _HEADER_drsblobs */