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