Changeset 740 for vendor/current/librpc/idl/drsblobs.idl
- Timestamp:
- Nov 14, 2012, 12:59:34 PM (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
vendor/current/librpc/idl/drsblobs.idl
r414 r740 1 1 #include "idl_types.h" 2 2 3 import "drsuapi.idl", "misc.idl", "samr.idl", "lsa.idl" ;3 import "drsuapi.idl", "misc.idl", "samr.idl", "lsa.idl", "security.idl"; 4 4 5 5 [ … … 11 11 ] 12 12 interface drsblobs { 13 typedef bitmap drsuapi_DsReplicaSyncOptions drsuapi_DsReplicaSyncOptions; 14 typedef bitmap drsuapi_DsReplicaNeighbourFlags drsuapi_DsReplicaNeighbourFlags; 13 typedef bitmap drsuapi_DrsOptions drsuapi_DrsOptions; 15 14 typedef [v1_enum] enum drsuapi_DsAttributeId drsuapi_DsAttributeId; 16 15 typedef [v1_enum] enum lsa_TrustAuthType lsa_TrustAuthType; … … 31 30 typedef struct { 32 31 uint32 count; 33 uint32 reserved;32 [value(0)] uint32 reserved; 34 33 replPropertyMetaData1 array[count]; 35 34 } replPropertyMetaDataCtr1; … … 41 40 typedef [public] struct { 42 41 uint32 version; 43 uint32 reserved;42 [value(0)] uint32 reserved; 44 43 [switch_is(version)] replPropertyMetaDataCtr ctr; 45 44 } replPropertyMetaDataBlob; … … 56 55 typedef struct { 57 56 uint32 count; 58 uint32 reserved;57 [value(0)] uint32 reserved; 59 58 drsuapi_DsReplicaCursor cursors[count]; 60 59 } replUpToDateVectorCtr1; … … 62 61 typedef struct { 63 62 uint32 count; 64 uint32 reserved;63 [value(0)] uint32 reserved; 65 64 drsuapi_DsReplicaCursor2 cursors[count]; 66 65 } replUpToDateVectorCtr2; … … 73 72 typedef [public] struct { 74 73 uint32 version; 75 uint32 reserved;74 [value(0)] uint32 reserved; 76 75 [switch_is(version)] replUpToDateVectorCtr ctr; 77 76 } replUpToDateVectorBlob; … … 94 93 typedef [public,gensize,flag(NDR_PAHEX)] struct { 95 94 /* this includes the 8 bytes of the repsFromToBlob header */ 96 [value(ndr_size_repsFromTo1(this, ndr-> iconv_convenience, ndr->flags)+8)] uint32 blobsize;95 [value(ndr_size_repsFromTo1(this, ndr->flags)+8)] uint32 blobsize; 97 96 uint32 consecutive_sync_failures; 98 97 NTTIME_1sec last_success; … … 100 99 WERROR result_last_attempt; 101 100 [relative] repsFromTo1OtherInfo *other_info; 102 [value(ndr_size_repsFromTo1OtherInfo(other_info, ndr-> iconv_convenience, ndr->flags))] uint32 other_info_length;103 drsuapi_D sReplicaNeighbourFlags replica_flags;101 [value(ndr_size_repsFromTo1OtherInfo(other_info, ndr->flags))] uint32 other_info_length; 102 drsuapi_DrsOptions replica_flags; 104 103 uint8 schedule[84]; 105 uint32 reserved;104 [value(0)] uint32 reserved; 106 105 drsuapi_DsReplicaHighWaterMark highwatermark; 107 106 GUID source_dsa_obj_guid; /* the 'objectGuid' field of the CN=NTDS Settings object */ … … 111 110 112 111 typedef [public,relative_base,gensize] struct { 113 [value(ndr_size_repsFromTo2OtherInfo(this,ndr-> iconv_convenience, ndr->flags))]112 [value(ndr_size_repsFromTo2OtherInfo(this,ndr->flags))] 114 113 uint32 __ndr_size; 115 114 [relative] nstring *dns_name1; … … 121 120 typedef [public,gensize,flag(NDR_PAHEX)] struct { 122 121 /* this includes the 8 bytes of the repsFromToBlob header */ 123 [value(ndr_size_repsFromTo2(this, ndr-> iconv_convenience, ndr->flags)+8)] uint32 blobsize;122 [value(ndr_size_repsFromTo2(this, ndr->flags)+8)] uint32 blobsize; 124 123 uint32 consecutive_sync_failures; 125 124 NTTIME_1sec last_success; … … 127 126 WERROR result_last_attempt; 128 127 [relative] repsFromTo2OtherInfo *other_info; 129 [value(ndr_size_repsFromTo2OtherInfo(other_info, ndr-> iconv_convenience, ndr->flags))] uint32 other_info_length;130 drsuapi_D sReplicaNeighbourFlags replica_flags;128 [value(ndr_size_repsFromTo2OtherInfo(other_info, ndr->flags))] uint32 other_info_length; 129 drsuapi_DrsOptions replica_flags; 131 130 uint8 schedule[84]; 132 uint32 reserved;131 [value(0)] uint32 reserved; 133 132 drsuapi_DsReplicaHighWaterMark highwatermark; 134 133 GUID source_dsa_obj_guid; /* the 'objectGuid' field of the CN=NTDS Settings object */ … … 145 144 typedef [public] struct { 146 145 uint32 version; 147 uint32 reserved;146 [value(0)] uint32 reserved; 148 147 [switch_is(version)] repsFromTo ctr; 149 148 } repsFromToBlob; … … 169 168 typedef [public] struct { 170 169 uint32 version; 171 uint32 reserved;170 [value(0)] uint32 reserved; 172 171 [switch_is(version)] partialAttributeSetCtr ctr; 173 172 } partialAttributeSetBlob; … … 176 175 [in] partialAttributeSetBlob blob 177 176 ); 177 178 179 /* 180 * schemaInfo attribute 181 * 182 * Used as an attribute on Schema. 183 * Also during replication as part of 184 * prefixMap to identify what revision 185 * of Schema source DC has 186 */ 187 typedef [public,flag(NDR_NOALIGN)] struct { 188 [value(0xFF)] uint8 marker; 189 [flag(NDR_BIG_ENDIAN)] uint32 revision; 190 GUID invocation_id; 191 } schemaInfoBlob; 192 193 194 /* 195 * MS w2k3 and w2k8 prefixMap format 196 * There is no version number. Format is: 197 * uint32 - number of entries in the map 198 * uint32 - total bytes that structure occupies 199 * ENTRIES: 200 * uint16 - prefix ID (OID's last sub-id encoded. see prefixMap) 201 * uint16 - number of bytes in prefix N 202 * uint8[N] - BER encoded prefix 203 */ 204 typedef [noprint,flag(NDR_NOALIGN)] struct { 205 uint16 entryID; 206 uint16 length; 207 uint8 binary_oid[length]; 208 } drsuapi_MSPrefixMap_Entry; 209 210 typedef [public,gensize] struct { 211 uint32 num_entries; 212 [value(ndr_size_drsuapi_MSPrefixMap_Ctr(r, ndr->flags))] uint32 __ndr_size; 213 drsuapi_MSPrefixMap_Entry entries[num_entries]; 214 } drsuapi_MSPrefixMap_Ctr; 178 215 179 216 /* … … 197 234 typedef [public] struct { 198 235 prefixMapVersion version; 199 uint32 reserved;236 [value(0)] uint32 reserved; 200 237 [switch_is(version)] prefixMapCtr ctr; 201 238 } prefixMapBlob; … … 219 256 uint32 u2; 220 257 uint32 u3; 221 [value(ndr_size_ldapControlDirSyncExtra(&extra, extra.uptodateness_vector.version, ndr->iconv_convenience,0))]258 [value(ndr_size_ldapControlDirSyncExtra(&extra, extra.uptodateness_vector.version, 0))] 222 259 uint32 extra_length; 223 260 drsuapi_DsReplicaHighWaterMark highwatermark; … … 280 317 typedef [public] struct { 281 318 [value(0)] uint32 unknown1; 282 [value(ndr_size_supplementalCredentialsSubBlob(&sub, ndr-> iconv_convenience, ndr->flags))] uint32 __ndr_size;319 [value(ndr_size_supplementalCredentialsSubBlob(&sub, ndr->flags))] uint32 __ndr_size; 283 320 [value(0)] uint32 unknown2; 284 321 [subcontext(0),subcontext_size(__ndr_size)] supplementalCredentialsSubBlob sub; … … 432 469 NTTIME LastUpdateTime; 433 470 lsa_TrustAuthType AuthType; 434 435 471 [switch_is(AuthType)] AuthInfo AuthInfo; 436 472 [flag(NDR_ALIGN4)] DATA_BLOB _pad; 437 473 } AuthenticationInformation; 438 474 439 typedef [nopull,nopush,noprint] struct { 440 /* sizeis here is bogus, but this is here just for the structure */ 441 [size_is(1)] AuthenticationInformation array[]; 475 /* count is not on the wire */ 476 typedef [public,nopull,nopush,gensize] struct { 477 uint32 count; 478 AuthenticationInformation array[count]; 442 479 } AuthenticationInformationArray; 443 480 444 /* This is nopull,nopush because we pass count down to the 445 * manual parser of AuthenticationInformationArray */ 446 typedef [public,nopull,nopush,noprint,gensize] struct { 481 /* we cannot use [relative] pointers here because Windows expects the 482 * previous_offset to match the total size of the struct in case 483 * the previous array is empty, see MS-LSAD 2.2.7.16 - gd */ 484 typedef [public,gensize,nopush] struct { 447 485 uint32 count; 448 [relative] AuthenticationInformationArray *current; 449 [relative] AuthenticationInformationArray *previous; 486 [value((count > 0) ? 12 : 0)] uint32 current_offset; 487 [value((count > 0) ? 12 + ndr_size_AuthenticationInformationArray(¤t, ndr->flags) : 0)] uint32 previous_offset; 488 [subcontext(0),subcontext_size((previous_offset)-(current_offset))] AuthenticationInformationArray current; 489 [subcontext(0)] [flag(NDR_REMAINING)] AuthenticationInformationArray previous; 450 490 } trustAuthInOutBlob; 451 491 452 void decode_trustAuthInOut(492 [nopython] void decode_trustAuthInOut( 453 493 [in] trustAuthInOutBlob blob 454 494 ); 455 456 typedef [public,gensize] struct {457 uint32 count;458 [relative] AuthenticationInformation *current[count];459 } trustCurrentPasswords;460 495 461 496 typedef [public,nopull] struct { 462 497 uint8 confounder[512]; 463 [subcontext(0),subcontext_size(outgoing_size)] trust CurrentPasswordsoutgoing;464 [subcontext(0),subcontext_size(incoming_size)] trust CurrentPasswordsincoming;465 [value(ndr_size_trust CurrentPasswords(&outgoing, ndr->iconv_convenience, ndr->flags))] uint32 outgoing_size;466 [value(ndr_size_trust CurrentPasswords(&incoming, ndr->iconv_convenience, ndr->flags))] uint32 incoming_size;498 [subcontext(0),subcontext_size(outgoing_size)] trustAuthInOutBlob outgoing; 499 [subcontext(0),subcontext_size(incoming_size)] trustAuthInOutBlob incoming; 500 [value(ndr_size_trustAuthInOutBlob(&outgoing, ndr->flags))] uint32 outgoing_size; 501 [value(ndr_size_trustAuthInOutBlob(&incoming, ndr->flags))] uint32 incoming_size; 467 502 } trustDomainPasswords; 468 503 469 void decode_trustDomainPasswords(504 [nopython] void decode_trustDomainPasswords( 470 505 [in] trustDomainPasswords blob 471 506 ); … … 548 583 } ExtendedErrorInfoPtr; 549 584 550 void decode_ExtendedErrorInfo (585 [nopython] void decode_ExtendedErrorInfo ( 551 586 [in,subcontext(0xFFFFFC01)] ExtendedErrorInfoPtr ptr 552 587 ); 588 589 /* MS-ADTS 7.1.6.9.3 msDS-TrustForestTrustInfo Attribute */ 590 591 typedef struct { 592 [value(strlen_m(string))] uint32 size; 593 [charset(UTF8)] uint8 string[size]; 594 } ForestTrustString; 595 596 typedef [flag(NDR_NOALIGN)] struct { 597 [value(ndr_size_dom_sid0(&sid, ndr->flags))] uint32 sid_size; 598 [subcontext(0),subcontext_size(sid_size)] dom_sid sid; 599 ForestTrustString dns_name; 600 ForestTrustString netbios_name; 601 } ForestTrustDataDomainInfo; 602 603 typedef [flag(NDR_NOALIGN)] struct { 604 uint32 size; 605 uint8 data[size]; 606 } ForestTrustDataBinaryData; 607 608 typedef [nodiscriminant] union { 609 [case(FOREST_TRUST_TOP_LEVEL_NAME)] ForestTrustString name; 610 [case(FOREST_TRUST_TOP_LEVEL_NAME_EX)] ForestTrustString name; 611 [case(FOREST_TRUST_DOMAIN_INFO)] ForestTrustDataDomainInfo info; 612 [default] ForestTrustDataBinaryData data; 613 } ForestTrustData; 614 615 /* same as lsa_ForestTrustRecordType */ 616 typedef [enum8bit] enum { 617 FOREST_TRUST_TOP_LEVEL_NAME = 0, 618 FOREST_TRUST_TOP_LEVEL_NAME_EX = 1, 619 FOREST_TRUST_DOMAIN_INFO = 2 620 } ForestTrustInfoRecordType; 621 622 /* meaning of flags depends on record type and values are 623 the same as in lsa.idl, see collision record types */ 624 typedef [public,gensize,flag(NDR_NOALIGN)] struct { 625 uint32 flags; 626 NTTIME timestamp; 627 ForestTrustInfoRecordType type; 628 [switch_is(type)] ForestTrustData data; 629 } ForestTrustInfoRecord; 630 631 typedef [flag(NDR_NOALIGN)] struct { 632 [value(ndr_size_ForestTrustInfoRecord(&record, ndr->flags))] uint32 record_size; 633 ForestTrustInfoRecord record; 634 } ForestTrustInfoRecordArmor; 635 636 typedef [public,flag(NDR_NOALIGN)] struct { 637 uint32 version; 638 uint32 count; 639 ForestTrustInfoRecordArmor records[count]; 640 } ForestTrustInfo; 641 642 [nopython] void decode_ForestTrustInfo( 643 [in] ForestTrustInfo blob 644 ); 553 645 }
Note:
See TracChangeset
for help on using the changeset viewer.