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 drsuapi_MSPrefixMap_Entry
{
142 }/* [noprint,flag(LIBNDR_FLAG_NOALIGN)] */;
144 struct drsuapi_MSPrefixMap_Ctr
{
145 uint32_t num_entries
;
146 uint32_t __ndr_size
;/* [value(ndr_size_drsuapi_MSPrefixMap_Ctr(r,ndr->iconv_convenience,ndr->flags))] */
147 struct drsuapi_MSPrefixMap_Entry
*entries
;
148 }/* [gensize,public] */;
150 enum prefixMapVersion
151 #ifndef USE_UINT_ENUMS
153 PREFIX_MAP_VERSION_DSDB
=(int)(0x44534442)
156 { __donnot_use_enum_prefixMapVersion
=0x7FFFFFFF}
157 #define PREFIX_MAP_VERSION_DSDB ( 0x44534442 )
162 struct drsuapi_DsReplicaOIDMapping_Ctr dsdb
;/* [case(PREFIX_MAP_VERSION_DSDB)] */
163 }/* [nodiscriminant] */;
165 struct prefixMapBlob
{
166 enum prefixMapVersion version
;
167 uint32_t reserved
;/* [value(0)] */
168 union prefixMapCtr ctr
;/* [switch_is(version)] */
171 union ldapControlDirSyncExtra
{
172 struct replUpToDateVectorBlob uptodateness_vector
;/* [default] */
173 }/* [gensize,nodiscriminant] */;
175 struct ldapControlDirSyncBlob
{
176 uint32_t u1
;/* [value(3)] */
180 uint32_t extra_length
;/* [value(ndr_size_ldapControlDirSyncExtra(&extra,extra.uptodateness_vector.version,ndr->iconv_convenience,0))] */
181 struct drsuapi_DsReplicaHighWaterMark highwatermark
;
183 union ldapControlDirSyncExtra extra
;/* [switch_is(extra_length)] */
186 struct ldapControlDirSyncCookie
{
187 const char *msds
;/* [value("MSDS"),charset(DOS)] */
188 struct ldapControlDirSyncBlob blob
;/* [subcontext(0)] */
189 }/* [relative_base,public] */;
191 struct supplementalCredentialsPackage
{
192 uint16_t name_len
;/* [value(2*strlen_m(name))] */
193 uint16_t data_len
;/* [value(strlen(data))] */
195 const char *name
;/* [charset(UTF16)] */
196 const char *data
;/* [charset(DOS)] */
199 enum supplementalCredentialsSignature
200 #ifndef USE_UINT_ENUMS
202 SUPPLEMENTAL_CREDENTIALS_SIGNATURE
=(int)(0x0050)
205 { __donnot_use_enum_supplementalCredentialsSignature
=0x7FFFFFFF}
206 #define SUPPLEMENTAL_CREDENTIALS_SIGNATURE ( 0x0050 )
210 struct supplementalCredentialsSubBlob
{
211 const char *prefix
;/* [value(SUPPLEMENTAL_CREDENTIALS_PREFIX),charset(UTF16)] */
212 enum supplementalCredentialsSignature signature
;/* [value(SUPPLEMENTAL_CREDENTIALS_SIGNATURE)] */
213 uint16_t num_packages
;
214 struct supplementalCredentialsPackage
*packages
;
217 struct supplementalCredentialsBlob
{
218 uint32_t unknown1
;/* [value(0)] */
219 uint32_t __ndr_size
;/* [value(ndr_size_supplementalCredentialsSubBlob(&sub,ndr->iconv_convenience,ndr->flags))] */
220 uint32_t unknown2
;/* [value(0)] */
221 struct supplementalCredentialsSubBlob sub
;/* [subcontext_size(__ndr_size),subcontext(0)] */
222 uint8_t unknown3
;/* [value(0)] */
225 struct package_PackagesBlob
{
226 const char ** names
;/* [flag(LIBNDR_FLAG_STR_NOTERM|LIBNDR_FLAG_REMAINING)] */
229 struct package_PrimaryKerberosString
{
230 uint16_t length
;/* [value(2*strlen_m(string))] */
231 uint16_t size
;/* [value(2*strlen_m(string))] */
232 const char * string
;/* [relative,subcontext_size(size),subcontext(0),flag(LIBNDR_FLAG_STR_NOTERM|LIBNDR_FLAG_REMAINING)] */
235 struct package_PrimaryKerberosKey3
{
236 uint16_t reserved1
;/* [value(0)] */
237 uint16_t reserved2
;/* [value(0)] */
238 uint32_t reserved3
;/* [value(0)] */
240 uint32_t value_len
;/* [value((value?value->length:0))] */
241 DATA_BLOB
*value
;/* [relative,subcontext_size(value_len),subcontext(0),flag(LIBNDR_FLAG_REMAINING)] */
244 struct package_PrimaryKerberosCtr3
{
246 uint16_t num_old_keys
;
247 struct package_PrimaryKerberosString salt
;
248 struct package_PrimaryKerberosKey3
*keys
;
249 struct package_PrimaryKerberosKey3
*old_keys
;
250 uint32_t padding1
;/* [value(0)] */
251 uint32_t padding2
;/* [value(0)] */
252 uint32_t padding3
;/* [value(0)] */
253 uint32_t padding4
;/* [value(0)] */
254 uint32_t padding5
;/* [value(0)] */
257 struct package_PrimaryKerberosKey4
{
258 uint16_t reserved1
;/* [value(0)] */
259 uint16_t reserved2
;/* [value(0)] */
260 uint32_t reserved3
;/* [value(0)] */
261 uint32_t iteration_count
;
263 uint32_t value_len
;/* [value((value?value->length:0))] */
264 DATA_BLOB
*value
;/* [relative,subcontext_size(value_len),subcontext(0),flag(LIBNDR_FLAG_REMAINING)] */
267 struct package_PrimaryKerberosCtr4
{
269 uint16_t num_service_keys
;/* [value(0)] */
270 uint16_t num_old_keys
;
271 uint16_t num_older_keys
;
272 struct package_PrimaryKerberosString salt
;
273 uint32_t default_iteration_count
;
274 struct package_PrimaryKerberosKey4
*keys
;
275 struct package_PrimaryKerberosKey4
*service_keys
;
276 struct package_PrimaryKerberosKey4
*old_keys
;
277 struct package_PrimaryKerberosKey4
*older_keys
;
280 union package_PrimaryKerberosCtr
{
281 struct package_PrimaryKerberosCtr3 ctr3
;/* [case(3)] */
282 struct package_PrimaryKerberosCtr4 ctr4
;/* [case(4)] */
283 }/* [nodiscriminant] */;
285 struct package_PrimaryKerberosBlob
{
287 uint16_t flags
;/* [value(0)] */
288 union package_PrimaryKerberosCtr ctr
;/* [switch_is(version)] */
291 struct package_PrimaryCLEARTEXTBlob
{
292 DATA_BLOB cleartext
;/* [flag(LIBNDR_FLAG_REMAINING)] */
295 struct package_PrimaryWDigestHash
{
297 }/* [flag(LIBNDR_PRINT_ARRAY_HEX)] */;
299 struct package_PrimaryWDigestBlob
{
300 uint16_t unknown1
;/* [value(0x31)] */
301 uint8_t unknown2
;/* [value(0x01)] */
303 uint32_t unknown3
;/* [value(0)] */
304 uint64_t uuknown4
;/* [value(0)] */
305 struct package_PrimaryWDigestHash
*hashes
;
308 struct AuthInfoNone
{
309 uint32_t size
;/* [value(0)] */
312 struct AuthInfoNT4Owf
{
313 uint32_t size
;/* [value(16)] */
314 struct samr_Password password
;
317 struct AuthInfoClear
{
322 struct AuthInfoVersion
{
323 uint32_t size
;/* [value(4)] */
328 struct AuthInfoNone none
;/* [case(TRUST_AUTH_TYPE_NONE)] */
329 struct AuthInfoNT4Owf nt4owf
;/* [case(TRUST_AUTH_TYPE_NT4OWF)] */
330 struct AuthInfoClear clear
;/* [case(TRUST_AUTH_TYPE_CLEAR)] */
331 struct AuthInfoVersion version
;/* [case(TRUST_AUTH_TYPE_VERSION)] */
332 }/* [nodiscriminant] */;
334 struct AuthenticationInformation
{
335 NTTIME LastUpdateTime
;
336 enum lsa_TrustAuthType AuthType
;
337 union AuthInfo AuthInfo
;/* [switch_is(AuthType)] */
338 DATA_BLOB _pad
;/* [flag(LIBNDR_FLAG_ALIGN4)] */
341 struct AuthenticationInformationArray
{
342 struct AuthenticationInformation
*array
;/* [size_is] */
343 }/* [noprint,nopush,nopull] */;
345 struct trustAuthInOutBlob
{
347 struct AuthenticationInformationArray
*current
;/* [relative] */
348 struct AuthenticationInformationArray
*previous
;/* [relative] */
349 }/* [noprint,gensize,nopull,public,nopush] */;
351 struct trustCurrentPasswords
{
353 struct AuthenticationInformation
**current
;/* [relative] */
354 }/* [gensize,public] */;
356 struct trustDomainPasswords
{
357 uint8_t confounder
[512];
358 struct trustCurrentPasswords outgoing
;/* [subcontext_size(outgoing_size),subcontext(0)] */
359 struct trustCurrentPasswords incoming
;/* [subcontext_size(incoming_size),subcontext(0)] */
360 uint32_t outgoing_size
;/* [value(ndr_size_trustCurrentPasswords(&outgoing,ndr->iconv_convenience,ndr->flags))] */
361 uint32_t incoming_size
;/* [value(ndr_size_trustCurrentPasswords(&incoming,ndr->iconv_convenience,ndr->flags))] */
362 }/* [public,nopull] */;
364 struct DsCompressedChunk
{
369 struct ExtendedErrorAString
{
371 const char *string
;/* [unique,charset(DOS),size_is(__size)] */
374 struct ExtendedErrorUString
{
376 const char *string
;/* [unique,charset(UTF16),size_is(__size)] */
379 struct ExtendedErrorBlob
{
381 uint8_t *data
;/* [unique,size_is(length)] */
384 enum ExtendedErrorComputerNamePresent
385 #ifndef USE_UINT_ENUMS
387 EXTENDED_ERROR_COMPUTER_NAME_PRESENT
=(int)(1),
388 EXTENDED_ERROR_COMPUTER_NAME_NOT_PRESENT
=(int)(2)
391 { __donnot_use_enum_ExtendedErrorComputerNamePresent
=0x7FFFFFFF}
392 #define EXTENDED_ERROR_COMPUTER_NAME_PRESENT ( 1 )
393 #define EXTENDED_ERROR_COMPUTER_NAME_NOT_PRESENT ( 2 )
397 union ExtendedErrorComputerNameU
{
398 struct ExtendedErrorUString name
;/* [case(EXTENDED_ERROR_COMPUTER_NAME_PRESENT)] */
399 }/* [switch_type(ExtendedErrorComputerNamePresent)] */;
401 struct ExtendedErrorComputerName
{
402 enum ExtendedErrorComputerNamePresent present
;
403 union ExtendedErrorComputerNameU n
;/* [switch_is(present)] */
406 enum ExtendedErrorParamType
407 #ifndef USE_UINT_ENUMS
409 EXTENDED_ERROR_PARAM_TYPE_ASCII_STRING
=(int)(1),
410 EXTENDED_ERROR_PARAM_TYPE_UNICODE_STRING
=(int)(2),
411 EXTENDED_ERROR_PARAM_TYPE_UINT32
=(int)(3),
412 EXTENDED_ERROR_PARAM_TYPE_UINT16
=(int)(4),
413 EXTENDED_ERROR_PARAM_TYPE_UINT64
=(int)(5),
414 EXTENDED_ERROR_PARAM_TYPE_NONE
=(int)(6),
415 EXTENDED_ERROR_PARAM_TYPE_BLOB
=(int)(7)
418 { __donnot_use_enum_ExtendedErrorParamType
=0x7FFFFFFF}
419 #define EXTENDED_ERROR_PARAM_TYPE_ASCII_STRING ( 1 )
420 #define EXTENDED_ERROR_PARAM_TYPE_UNICODE_STRING ( 2 )
421 #define EXTENDED_ERROR_PARAM_TYPE_UINT32 ( 3 )
422 #define EXTENDED_ERROR_PARAM_TYPE_UINT16 ( 4 )
423 #define EXTENDED_ERROR_PARAM_TYPE_UINT64 ( 5 )
424 #define EXTENDED_ERROR_PARAM_TYPE_NONE ( 6 )
425 #define EXTENDED_ERROR_PARAM_TYPE_BLOB ( 7 )
429 union ExtendedErrorParamU
{
430 struct ExtendedErrorAString a_string
;/* [case(EXTENDED_ERROR_PARAM_TYPE_ASCII_STRING)] */
431 struct ExtendedErrorUString u_string
;/* [case(EXTENDED_ERROR_PARAM_TYPE_UNICODE_STRING)] */
432 uint32_t uint32
;/* [case(EXTENDED_ERROR_PARAM_TYPE_UINT32)] */
433 uint16_t uint16
;/* [case(EXTENDED_ERROR_PARAM_TYPE_UINT16)] */
434 uint64_t uint64
;/* [case(EXTENDED_ERROR_PARAM_TYPE_UINT64)] */
435 struct ExtendedErrorBlob blob
;/* [case(EXTENDED_ERROR_PARAM_TYPE_BLOB)] */
436 }/* [switch_type(ExtendedErrorParamType)] */;
438 struct ExtendedErrorParam
{
439 enum ExtendedErrorParamType type
;
440 union ExtendedErrorParamU p
;/* [switch_is(type)] */
443 struct ExtendedErrorInfo
{
444 struct ExtendedErrorInfo
*next
;/* [unique] */
445 struct ExtendedErrorComputerName computer_name
;
448 uint32_t generating_component
;
450 uint16_t detection_location
;
453 struct ExtendedErrorParam
*params
;/* [size_is(num_params)] */
456 struct ExtendedErrorInfoPtr
{
457 struct ExtendedErrorInfo
*info
;/* [unique] */
460 struct ForestTrustDataDomainInfo
{
461 uint32_t sid_size
;/* [value(ndr_size_dom_sid0(&sid,ndr->flags))] */
462 struct dom_sid sid
;/* [subcontext_size(sid_size),subcontext(0)] */
463 const char * dns_name
;/* [flag(LIBNDR_FLAG_STR_SIZE4|LIBNDR_FLAG_STR_UTF8|LIBNDR_FLAG_STR_NOTERM)] */
464 const char * netbios_name
;/* [flag(LIBNDR_FLAG_STR_SIZE4|LIBNDR_FLAG_STR_UTF8|LIBNDR_FLAG_STR_NOTERM)] */
465 }/* [flag(LIBNDR_FLAG_NOALIGN)] */;
467 struct ForestTrustDataBinaryData
{
470 }/* [flag(LIBNDR_FLAG_NOALIGN)] */;
472 union ForestTrustData
{
473 const char * name
;/* [flag(LIBNDR_FLAG_STR_SIZE4|LIBNDR_FLAG_STR_UTF8|LIBNDR_FLAG_STR_NOTERM),case(FOREST_TRUST_TOP_LEVEL_NAME)] */
474 struct ForestTrustDataDomainInfo info
;/* [case(FOREST_TRUST_DOMAIN_INFO)] */
475 struct ForestTrustDataBinaryData data
;/* [default] */
476 }/* [nodiscriminant] */;
478 enum ForestTrustInfoRecordType
479 #ifndef USE_UINT_ENUMS
481 FOREST_TRUST_TOP_LEVEL_NAME
=(int)(0),
482 FOREST_TRUST_TOP_LEVEL_NAME_EX
=(int)(1),
483 FOREST_TRUST_DOMAIN_INFO
=(int)(2)
486 { __donnot_use_enum_ForestTrustInfoRecordType
=0x7FFFFFFF}
487 #define FOREST_TRUST_TOP_LEVEL_NAME ( 0 )
488 #define FOREST_TRUST_TOP_LEVEL_NAME_EX ( 1 )
489 #define FOREST_TRUST_DOMAIN_INFO ( 2 )
493 struct ForestTrustInfoRecord
{
496 enum ForestTrustInfoRecordType type
;
497 union ForestTrustData data
;/* [switch_is(type)] */
498 }/* [gensize,public,flag(LIBNDR_FLAG_NOALIGN)] */;
500 struct ForestTrustInfoRecordArmor
{
501 uint32_t record_size
;/* [value(ndr_size_ForestTrustInfoRecord(&record,ndr->iconv_convenience,ndr->flags))] */
502 struct ForestTrustInfoRecord record
;
503 }/* [flag(LIBNDR_FLAG_NOALIGN)] */;
505 struct ForestTrustInfo
{
508 struct ForestTrustInfoRecordArmor
*records
;
509 }/* [public,flag(LIBNDR_FLAG_NOALIGN)] */;
512 struct decode_replPropertyMetaData
{
514 struct replPropertyMetaDataBlob blob
;
520 struct decode_replUpToDateVector
{
522 struct replUpToDateVectorBlob blob
;
528 struct decode_repsFromTo
{
530 struct repsFromToBlob blob
;
536 struct decode_partialAttributeSet
{
538 struct partialAttributeSetBlob blob
;
544 struct decode_prefixMap
{
546 struct prefixMapBlob blob
;
552 struct decode_ldapControlDirSync
{
554 struct ldapControlDirSyncCookie cookie
;
560 struct decode_supplementalCredentials
{
562 struct supplementalCredentialsBlob blob
;
568 struct decode_Packages
{
570 struct package_PackagesBlob blob
;
576 struct decode_PrimaryKerberos
{
578 struct package_PrimaryKerberosBlob blob
;
584 struct decode_PrimaryCLEARTEXT
{
586 struct package_PrimaryCLEARTEXTBlob blob
;
592 struct decode_PrimaryWDigest
{
594 struct package_PrimaryWDigestBlob blob
;
600 struct decode_trustAuthInOut
{
602 struct trustAuthInOutBlob blob
;
608 struct decode_trustDomainPasswords
{
610 struct trustDomainPasswords blob
;
616 struct decode_ExtendedErrorInfo
{
618 struct ExtendedErrorInfoPtr ptr
;/* [subcontext(0xFFFFFC01)] */
624 struct decode_ForestTrustInfo
{
626 struct ForestTrustInfo blob
;
631 #endif /* _HEADER_drsblobs */