Ignore:
Timestamp:
Nov 14, 2012, 12:59:34 PM (13 years ago)
Author:
Silvan Scherrer
Message:

Samba Server: update vendor to 3.6.0

File:
1 edited

Legend:

Unmodified
Added
Removed
  • vendor/current/librpc/idl/drsuapi.idl

    r414 r740  
    11#include "idl_types.h"
    22
    3 import "security.idl", "misc.idl", "samr.idl";
     3import "security.idl", "misc.idl", "lsa.idl", "samr.idl";
    44
    55[
     
    1616        typedef bitmap samr_GroupAttrs samr_GroupAttrs;
    1717
     18        /* see MS-DRSR section 5.39 */
     19        typedef [public,bitmap32bit] bitmap {
     20                DRSUAPI_DRS_ASYNC_OP                  = 0x00000001,
     21                DRSUAPI_DRS_GETCHG_CHECK              = 0x00000002,
     22                DRSUAPI_DRS_UPDATE_NOTIFICATION       = 0x00000002,
     23                DRSUAPI_DRS_ADD_REF                   = 0x00000004,
     24                DRSUAPI_DRS_SYNC_ALL                  = 0x00000008,
     25                DRSUAPI_DRS_DEL_REF                   = 0x00000008,
     26                DRSUAPI_DRS_WRIT_REP                  = 0x00000010,
     27                DRSUAPI_DRS_INIT_SYNC                 = 0x00000020,
     28                DRSUAPI_DRS_PER_SYNC                  = 0x00000040,
     29                DRSUAPI_DRS_MAIL_REP                  = 0x00000080,
     30                DRSUAPI_DRS_ASYNC_REP                 = 0x00000100,
     31                DRSUAPI_DRS_IGNORE_ERROR              = 0x00000100,
     32                DRSUAPI_DRS_TWOWAY_SYNC               = 0x00000200,
     33                DRSUAPI_DRS_CRITICAL_ONLY             = 0x00000400,
     34                DRSUAPI_DRS_GET_ANC                   = 0x00000800,
     35                DRSUAPI_DRS_GET_NC_SIZE               = 0x00001000,
     36                DRSUAPI_DRS_LOCAL_ONLY                = 0x00001000,
     37                DRSUAPI_DRS_NONGC_RO_REP              = 0x00002000,
     38                DRSUAPI_DRS_SYNC_BYNAME               = 0x00004000,
     39                DRSUAPI_DRS_REF_OK                    = 0x00004000,
     40                DRSUAPI_DRS_FULL_SYNC_NOW             = 0x00008000,
     41                DRSUAPI_DRS_NO_SOURCE                 = 0x00008000,
     42                DRSUAPI_DRS_FULL_SYNC_IN_PROGRESS     = 0x00010000,
     43                DRSUAPI_DRS_FULL_SYNC_PACKET          = 0x00020000,
     44                DRSUAPI_DRS_SYNC_REQUEUE              = 0x00040000,
     45                DRSUAPI_DRS_SYNC_URGENT               = 0x00080000,
     46                DRSUAPI_DRS_REF_GCSPN                 = 0x00100000,
     47                DRSUAPI_DRS_NO_DISCARD                = 0x00100000,
     48                DRSUAPI_DRS_NEVER_SYNCED              = 0x00200000,
     49                DRSUAPI_DRS_SPECIAL_SECRET_PROCESSING = 0x00400000,
     50                DRSUAPI_DRS_INIT_SYNC_NOW             = 0x00800000,
     51                DRSUAPI_DRS_PREEMPTED                 = 0x01000000,
     52                DRSUAPI_DRS_SYNC_FORCED               = 0x02000000,
     53                DRSUAPI_DRS_DISABLE_AUTO_SYNC         = 0x04000000,
     54                DRSUAPI_DRS_DISABLE_PERIODIC_SYNC     = 0x08000000,
     55                DRSUAPI_DRS_USE_COMPRESSION           = 0x10000000,
     56                DRSUAPI_DRS_NEVER_NOTIFY              = 0x20000000,
     57                DRSUAPI_DRS_SYNC_PAS                  = 0x40000000,
     58                DRSUAPI_DRS_GET_ALL_GROUP_MEMBERSHIP  = 0x80000000
     59        } drsuapi_DrsOptions;
     60
    1861        /*****************/
    1962        /* Function 0x00 */
     
    2669                DRSUAPI_SUPPORTED_EXTENSION_DCINFO_V1                   = 0x00000020,
    2770                DRSUAPI_SUPPORTED_EXTENSION_RESTORE_USN_OPTIMIZATION    = 0x00000040,
    28                 DRSUAPI_SUPPORTED_EXTENSION_00000080                    = 0x00000080,
     71                DRSUAPI_SUPPORTED_EXTENSION_ADDENTRY                    = 0x00000080,
    2972                DRSUAPI_SUPPORTED_EXTENSION_KCC_EXECUTE                 = 0x00000100,
    3073                DRSUAPI_SUPPORTED_EXTENSION_ADDENTRY_V2                 = 0x00000200,
     
    3982                DRSUAPI_SUPPORTED_EXTENSION_ADD_SID_HISTORY             = 0x00040000,
    4083                DRSUAPI_SUPPORTED_EXTENSION_POST_BETA3                  = 0x00080000,
    41                 DRSUAPI_SUPPORTED_EXTENSION_00100000                    = 0x00100000,
     84                DRSUAPI_SUPPORTED_EXTENSION_GETCHGREQ_V5                = 0x00100000,
    4285                DRSUAPI_SUPPORTED_EXTENSION_GET_MEMBERSHIPS2            = 0x00200000,
    4386                DRSUAPI_SUPPORTED_EXTENSION_GETCHGREQ_V6                = 0x00400000,
     
    5497                DRSUAPI_SUPPORTED_EXTENSION_VERIFY_OBJECT               = 0x08000000,
    5598                DRSUAPI_SUPPORTED_EXTENSION_XPRESS_COMPRESS             = 0x10000000,
    56                 DRSUAPI_SUPPORTED_EXTENSION_20000000                    = 0x20000000,
    57                 DRSUAPI_SUPPORTED_EXTENSION_40000000                    = 0x40000000,
    58                 DRSUAPI_SUPPORTED_EXTENSION_80000000                    = 0x80000000
     99                DRSUAPI_SUPPORTED_EXTENSION_GETCHGREQ_V10               = 0x20000000,
     100                DRSUAPI_SUPPORTED_EXTENSION_RESERVED_PART2              = 0x40000000,
     101                DRSUAPI_SUPPORTED_EXTENSION_RESERVED_PART3              = 0x80000000
    59102        } drsuapi_SupportedExtensions;
    60103
    61104        typedef [bitmap32bit] bitmap {
    62105                DRSUAPI_SUPPORTED_EXTENSION_ADAM                        = 0x00000001,
    63                 DRSUAPI_SUPPORTED_EXTENSION_LH_BETA2                    = 0x00000002
     106                DRSUAPI_SUPPORTED_EXTENSION_LH_BETA2                    = 0x00000002,
     107                DRSUAPI_SUPPORTED_EXTENSION_RECYCLE_BIN                 = 0x00000004
    64108        } drsuapi_SupportedExtensionsExt;
    65109
     
    143187        /* Function 0x02 */
    144188        typedef [public,gensize] struct {
    145                 [value(ndr_size_drsuapi_DsReplicaObjectIdentifier(r, ndr->iconv_convenience, ndr->flags)-4)] uint32 __ndr_size;
     189                [value(ndr_size_drsuapi_DsReplicaObjectIdentifier(r, ndr->flags)-4)] uint32 __ndr_size;
    146190                [value(ndr_size_dom_sid28(&sid, ndr->flags))]  uint32 __ndr_size_sid;
    147191                GUID guid;
     
    151195        } drsuapi_DsReplicaObjectIdentifier;
    152196
    153         typedef [public] bitmap {
    154                 DRSUAPI_DS_REPLICA_SYNC_ASYNCHRONOUS_OPERATION  = 0x00000001,
    155                 DRSUAPI_DS_REPLICA_SYNC_WRITEABLE               = 0x00000002,
    156                 DRSUAPI_DS_REPLICA_SYNC_PERIODIC                = 0x00000004,
    157                 DRSUAPI_DS_REPLICA_SYNC_INTERSITE_MESSAGING     = 0x00000008,
    158                 DRSUAPI_DS_REPLICA_SYNC_ALL_SOURCES             = 0x00000010,
    159                 DRSUAPI_DS_REPLICA_SYNC_FULL                    = 0x00000020,
    160                 DRSUAPI_DS_REPLICA_SYNC_URGENT                  = 0x00000040,
    161                 DRSUAPI_DS_REPLICA_SYNC_NO_DISCARD              = 0x00000080,
    162                 DRSUAPI_DS_REPLICA_SYNC_FORCE                   = 0x00000100,
    163                 DRSUAPI_DS_REPLICA_SYNC_ADD_REFERENCE           = 0x00000200,
    164                 DRSUAPI_DS_REPLICA_SYNC_NEVER_COMPLETED         = 0x00000400,
    165                 DRSUAPI_DS_REPLICA_SYNC_TWO_WAY                 = 0x00000800,
    166                 DRSUAPI_DS_REPLICA_SYNC_NEVER_NOTIFY            = 0x00001000,
    167                 DRSUAPI_DS_REPLICA_SYNC_INITIAL                 = 0x00002000,
    168                 DRSUAPI_DS_REPLICA_SYNC_USE_COMPRESSION         = 0x00004000,
    169                 DRSUAPI_DS_REPLICA_SYNC_ABANDONED               = 0x00008000,
    170                 DRSUAPI_DS_REPLICA_SYNC_INITIAL_IN_PROGRESS     = 0x00010000,
    171                 DRSUAPI_DS_REPLICA_SYNC_PARTIAL_ATTRIBUTE_SET   = 0x00020000,
    172                 DRSUAPI_DS_REPLICA_SYNC_REQUEUE                 = 0x00040000,
    173                 DRSUAPI_DS_REPLICA_SYNC_NOTIFICATION            = 0x00080000,
    174                 DRSUAPI_DS_REPLICA_SYNC_ASYNCHRONOUS_REPLICA    = 0x00100000,
    175                 DRSUAPI_DS_REPLICA_SYNC_CRITICAL                = 0x00200000,
    176                 DRSUAPI_DS_REPLICA_SYNC_FULL_IN_PROGRESS        = 0x00400000,
    177                 DRSUAPI_DS_REPLICA_SYNC_PREEMPTED               = 0x00800000
    178         } drsuapi_DsReplicaSyncOptions;
    179 
    180         typedef struct {
    181                 drsuapi_DsReplicaObjectIdentifier *naming_context;
     197        typedef struct {
     198                [ref] drsuapi_DsReplicaObjectIdentifier *naming_context;
    182199                GUID source_dsa_guid;
    183                 astring *other_info; /* I assume this is related to the repsFromTo1OtherInfo dns_name */
    184                 drsuapi_DsReplicaSyncOptions options;
     200                astring *source_dsa_dns; /* Source DSA dns_name in <guid>._msdcs.<domain_dns> form */
     201                drsuapi_DrsOptions options;
    185202        } drsuapi_DsReplicaSyncRequest1;
    186203
    187         typedef [switch_type(int32)] union {
     204        typedef [switch_type(uint32)] union {
    188205                [case(1)] drsuapi_DsReplicaSyncRequest1 req1;
    189206        } drsuapi_DsReplicaSyncRequest;
     
    191208        WERROR drsuapi_DsReplicaSync(
    192209                [in] policy_handle *bind_handle,
    193                 [in] int32 level,
    194                 [in,switch_is(level)] drsuapi_DsReplicaSyncRequest req
     210                [in] uint32 level,
     211                [in,switch_is(level)] drsuapi_DsReplicaSyncRequest *req
    195212                );
    196213
     
    215232                [size_is(count)] drsuapi_DsReplicaCursor cursors[];
    216233        } drsuapi_DsReplicaCursorCtrEx;
    217 
    218         typedef [public] bitmap {
    219                 /* the _WRITEABLE flag indicates a replication with all attributes
    220                  *
    221                  * --metze
    222                  */
    223                 DRSUAPI_DS_REPLICA_NEIGHBOUR_WRITEABLE                          = 0x00000010,
    224                 DRSUAPI_DS_REPLICA_NEIGHBOUR_SYNC_ON_STARTUP                    = 0x00000020,
    225                 DRSUAPI_DS_REPLICA_NEIGHBOUR_DO_SCHEDULED_SYNCS                 = 0x00000040,
    226                 DRSUAPI_DS_REPLICA_NEIGHBOUR_USE_ASYNC_INTERSIDE_TRANSPORT      = 0x00000080,
    227                 DRSUAPI_DS_REPLICA_NEIGHBOUR_ASYNC_REP                          = 0x00000100,
    228                 DRSUAPI_DS_REPLICA_NEIGHBOUR_IGNORE_ERROR                       = 0x00000100,
    229                 DRSUAPI_DS_REPLICA_NEIGHBOUR_TWO_WAY_SYNC                       = 0x00000200,
    230                 DRSUAPI_DS_REPLICA_NEIGHBOUR_CRITICAL_ONLY                      = 0x00000400,
    231                 DRSUAPI_DS_REPLICA_NEIGHBOUR_RETURN_OBJECT_PARENTS              = 0x00000800,/*Include updates to ancestor objects before updates to their descendants*/
    232                 DRSUAPI_DS_REPLICA_NEIGHBOUR_FULL_IN_PROGRESS                   = 0x00010000,
    233                 DRSUAPI_DS_REPLICA_NEIGHBOUR_FULL_SYNC_PACKET                   = 0x00020000,
    234                 DRSUAPI_DS_REPLICA_NEIGHBOUR_NEVER_SYNCED                       = 0x00200000,
    235                 DRSUAPI_DS_REPLICA_NEIGHBOUR_SPECIAL_SECRET_PROCESSING          = 0x00800000,
    236                 DRSUAPI_DS_REPLICA_NEIGHBOUR_PREEMPTED                          = 0x01000000,
    237                 DRSUAPI_DS_REPLICA_NEIGHBOUR_IGNORE_CHANGE_NOTIFICATIONS        = 0x04000000,
    238                 DRSUAPI_DS_REPLICA_NEIGHBOUR_DISABLE_SCHEDULED_SYNC             = 0x08000000,
    239                 /*
    240                  * the following NOTE applies to DsGetNCChangesRequest5:
    241                  *  - the data is only compressed when 10 or more objects are replicated
    242                  *  - but there could also be a size limit of 35 KBytes or something like that
    243                  *  - the reply is DsGetNCChangesCtr2
    244                  *  - maybe the same applies to DsGetNCChangesRequest8...
    245                  *
    246                  *  --metze
    247                  */
    248                 DRSUAPI_DS_REPLICA_NEIGHBOUR_COMPRESS_CHANGES                   = 0x10000000,
    249                 DRSUAPI_DS_REPLICA_NEIGHBOUR_NO_CHANGE_NOTIFICATIONS            = 0x20000000,
    250                 DRSUAPI_DS_REPLICA_NEIGHBOUR_PARTIAL_ATTRIBUTE_SET              = 0x40000000
    251         } drsuapi_DsReplicaNeighbourFlags;
    252234
    253235        typedef [flag(NDR_PAHEX),v1_enum] enum {
     
    288270                drsuapi_DsReplicaHighWaterMark highwatermark;
    289271                drsuapi_DsReplicaCursorCtrEx *uptodateness_vector;
    290                 drsuapi_DsReplicaNeighbourFlags replica_flags;
     272                drsuapi_DrsOptions replica_flags;
    291273                uint32 max_object_count; /* w2k3 uses min(133,max(100,max_object_count)) */
    292274                uint32 max_ndr_size; /* w2k3 seems to ignore this */
     
    379361         * 2.5.5.17     => dom_sid
    380362         */
    381         typedef [nopush,nopull] struct {
    382                 [range(0,10000),value(ndr_size_drsuapi_DsReplicaOID_oid(oid, 0))] uint32 __ndr_size;
    383                 [size_is(__ndr_size),charset(DOS)] uint8 *oid; /* it's encoded with asn1_write_OID_String() */
     363        typedef [noprint] struct {
     364                [range(0,10000)] uint32 length;
     365                [size_is(length)] uint8 *binary_oid; /* partial-binary-OID encoded with asn1_write_partial_OID_String() */
    384366        } drsuapi_DsReplicaOID;
    385367
     
    401383
    402384        typedef [flag(NDR_PAHEX),v1_enum,public] enum {
    403                 DRSUAPI_ATTRIBUTE_objectClass                   = 0x00000000,
    404                 DRSUAPI_ATTRIBUTE_description                   = 0x0000000d,
    405                 DRSUAPI_ATTRIBUTE_member                        = 0x0000001f,
    406                 DRSUAPI_ATTRIBUTE_instanceType                  = 0x00020001,
    407                 DRSUAPI_ATTRIBUTE_whenCreated                   = 0x00020002,
    408                 DRSUAPI_ATTRIBUTE_possSuperiors                 = 0x00020008,
    409                 DRSUAPI_ATTRIBUTE_hasMasterNCs                  = 0x0002000e,
    410                 DRSUAPI_ATTRIBUTE_subClassOf                    = 0x00020015,
    411                 DRSUAPI_ATTRIBUTE_governsID                     = 0x00020016,
    412                 DRSUAPI_ATTRIBUTE_mustContain                   = 0x00020018,
    413                 DRSUAPI_ATTRIBUTE_mayContain                    = 0x00020019,
    414                 DRSUAPI_ATTRIBUTE_attributeID                   = 0x0002001e,
    415                 DRSUAPI_ATTRIBUTE_attributeSyntax               = 0x00020020,
    416                 DRSUAPI_ATTRIBUTE_isSingleValued                = 0x00020021,
    417                 DRSUAPI_ATTRIBUTE_rangeLower                    = 0x00020022,
    418                 DRSUAPI_ATTRIBUTE_rangeUpper                    = 0x00020023,
    419                 DRSUAPI_ATTRIBUTE_dMDLocation                   = 0x00020024,
    420                 DRSUAPI_ATTRIBUTE_objectVersion                 = 0x0002004c,
    421                 DRSUAPI_ATTRIBUTE_invocationId                  = 0x00020073,
    422                 DRSUAPI_ATTRIBUTE_showInAdvancedViewOnly        = 0x000200a9,
    423                 DRSUAPI_ATTRIBUTE_adminDisplayName              = 0x000200c2,
    424                 DRSUAPI_ATTRIBUTE_adminDescription              = 0x000200e2,
    425                 DRSUAPI_ATTRIBUTE_oMSyntax                      = 0x000200e7,
    426                 DRSUAPI_ATTRIBUTE_ntSecurityDescriptor          = 0x00020119,
    427                 DRSUAPI_ATTRIBUTE_searchFlags                   = 0x0002014e,
    428                 DRSUAPI_ATTRIBUTE_auxiliaryClass                = 0x0002015f,
    429                 DRSUAPI_ATTRIBUTE_lDAPDisplayName               = 0x000201cc,
    430                 DRSUAPI_ATTRIBUTE_name                          = 0x00090001,
    431                 DRSUAPI_ATTRIBUTE_userAccountControl            = 0x00090008,
    432                 DRSUAPI_ATTRIBUTE_currentValue                  = 0x0009001b,
    433                 DRSUAPI_ATTRIBUTE_homeDirectory                 = 0x0009002c,
    434                 DRSUAPI_ATTRIBUTE_homeDrive                     = 0x0009002d,
    435                 DRSUAPI_ATTRIBUTE_scriptPath                    = 0x0009003e,
    436                 DRSUAPI_ATTRIBUTE_profilePath                   = 0x0009008b,
    437                 DRSUAPI_ATTRIBUTE_objectSid                     = 0x00090092,
    438                 DRSUAPI_ATTRIBUTE_schemaIDGUID                  = 0x00090094,
    439                 DRSUAPI_ATTRIBUTE_dBCSPwd                       = 0x00090037,/* lmPwdHash */
    440                 DRSUAPI_ATTRIBUTE_logonHours                    = 0x00090040,
    441                 DRSUAPI_ATTRIBUTE_userWorkstations              = 0x00090056,
    442                 DRSUAPI_ATTRIBUTE_unicodePwd                    = 0x0009005a,/* ntPwdHash */
    443                 DRSUAPI_ATTRIBUTE_ntPwdHistory                  = 0x0009005e,
    444                 DRSUAPI_ATTRIBUTE_priorValue                    = 0x00090064,
    445                 DRSUAPI_ATTRIBUTE_supplementalCredentials       = 0x0009007d,
    446                 DRSUAPI_ATTRIBUTE_trustAuthIncoming             = 0x00090081,
    447                 DRSUAPI_ATTRIBUTE_trustAuthOutgoing             = 0x00090087,
    448                 DRSUAPI_ATTRIBUTE_lmPwdHistory                  = 0x000900a0,
    449                 DRSUAPI_ATTRIBUTE_systemPossSuperiors           = 0x000900c3,
    450                 DRSUAPI_ATTRIBUTE_systemMayContain              = 0x000900c4,
    451                 DRSUAPI_ATTRIBUTE_systemMustContain             = 0x000900c5,
    452                 DRSUAPI_ATTRIBUTE_sAMAccountName                = 0x000900dd,
    453                 DRSUAPI_ATTRIBUTE_sAMAccountType                = 0x0009012e,
    454                 DRSUAPI_ATTRIBUTE_fSMORoleOwner                 = 0x00090171,
    455                 DRSUAPI_ATTRIBUTE_systemFlags                   = 0x00090177,
    456                 DRSUAPI_ATTRIBUTE_serverReference               = 0x00090203,
    457                 DRSUAPI_ATTRIBUTE_serverReferenceBL             = 0x00090204,
    458                 DRSUAPI_ATTRIBUTE_initialAuthIncoming           = 0x0009021b,
    459                 DRSUAPI_ATTRIBUTE_initialAuthOutgoing           = 0x0009021c,
    460                 DRSUAPI_ATTRIBUTE_wellKnownObjects              = 0x0009026a,
    461                 DRSUAPI_ATTRIBUTE_dNSHostName                   = 0x0009026b,
    462                 DRSUAPI_ATTRIBUTE_isMemberOfPartialAttributeSet = 0x0009027f,
    463                 DRSUAPI_ATTRIBUTE_userPrincipalName             = 0x00090290,
    464                 DRSUAPI_ATTRIBUTE_groupType                     = 0x000902ee,
    465                 DRSUAPI_ATTRIBUTE_servicePrincipalName          = 0x00090303,
    466                 DRSUAPI_ATTRIBUTE_objectCategory                = 0x0009030e,
    467                 DRSUAPI_ATTRIBUTE_gPLink                        = 0x0009037b,
    468                 DRSUAPI_ATTRIBUTE_msDS_Behavior_Version         = 0x000905b3,
    469                 DRSUAPI_ATTRIBUTE_msDS_KeyVersionNumber         = 0x000906f6,
    470                 DRSUAPI_ATTRIBUTE_msDS_HasDomainNCs             = 0x0009071c,
    471                 DRSUAPI_ATTRIBUTE_msDS_hasMasterNCs             = 0x0009072c
     385                DRSUAPI_ATTID_objectClass                       = 0x00000000,
     386                DRSUAPI_ATTID_cn                                = 0x00000003,
     387                DRSUAPI_ATTID_ou                                = 0x0000000b,
     388                DRSUAPI_ATTID_description                       = 0x0000000d,
     389                DRSUAPI_ATTID_member                            = 0x0000001f,
     390                DRSUAPI_ATTID_instanceType                      = 0x00020001,
     391                DRSUAPI_ATTID_whenCreated                       = 0x00020002,
     392                DRSUAPI_ATTID_possSuperiors                     = 0x00020008,
     393                DRSUAPI_ATTID_displayName                       = 0x0002000d,
     394                DRSUAPI_ATTID_hasMasterNCs                      = 0x0002000e,
     395                DRSUAPI_ATTID_subClassOf                        = 0x00020015,
     396                DRSUAPI_ATTID_governsID                         = 0x00020016,
     397                DRSUAPI_ATTID_mustContain                       = 0x00020018,
     398                DRSUAPI_ATTID_mayContain                        = 0x00020019,
     399                DRSUAPI_ATTID_rDNAttId                          = 0x0002001A,
     400                DRSUAPI_ATTID_attributeID                       = 0x0002001e,
     401                DRSUAPI_ATTID_attributeSyntax                   = 0x00020020,
     402                DRSUAPI_ATTID_isSingleValued                    = 0x00020021,
     403                DRSUAPI_ATTID_rangeLower                        = 0x00020022,
     404                DRSUAPI_ATTID_rangeUpper                        = 0x00020023,
     405                DRSUAPI_ATTID_dMDLocation                       = 0x00020024,
     406                DRSUAPI_ATTID_isDeleted                         = 0x00020030,
     407                DRSUAPI_ATTID_objectVersion                     = 0x0002004c,
     408                DRSUAPI_ATTID_invocationId                      = 0x00020073,
     409                DRSUAPI_ATTID_showInAdvancedViewOnly            = 0x000200a9,
     410                DRSUAPI_ATTID_adminDisplayName                  = 0x000200c2,
     411                DRSUAPI_ATTID_adminDescription                  = 0x000200e2,
     412                DRSUAPI_ATTID_oMSyntax                          = 0x000200e7,
     413                DRSUAPI_ATTID_ntSecurityDescriptor              = 0x00020119,
     414                DRSUAPI_ATTID_searchFlags                       = 0x0002014e,
     415                DRSUAPI_ATTID_auxiliaryClass                    = 0x0002015f,
     416                DRSUAPI_ATTID_lDAPDisplayName                   = 0x000201cc,
     417                DRSUAPI_ATTID_name                              = 0x00090001,
     418                DRSUAPI_ATTID_userAccountControl                = 0x00090008,
     419                DRSUAPI_ATTID_badPwdCount                       = 0x0009000c,
     420                DRSUAPI_ATTID_codePage                          = 0x00090010,
     421                DRSUAPI_ATTID_countryCode                       = 0x00090019,
     422                DRSUAPI_ATTID_currentValue                      = 0x0009001b,
     423                DRSUAPI_ATTID_homeDirectory                     = 0x0009002c,
     424                DRSUAPI_ATTID_homeDrive                         = 0x0009002d,
     425                DRSUAPI_ATTID_lastLogoff                        = 0x00090033,
     426                DRSUAPI_ATTID_lastLogon                         = 0x00090034,
     427                DRSUAPI_ATTID_dBCSPwd                           = 0x00090037,/* lmPwdHash */
     428                DRSUAPI_ATTID_scriptPath                        = 0x0009003e,
     429                DRSUAPI_ATTID_logonHours                        = 0x00090040,
     430                DRSUAPI_ATTID_userWorkstations                  = 0x00090056,
     431                DRSUAPI_ATTID_unicodePwd                        = 0x0009005a,/* ntPwdHash */
     432                DRSUAPI_ATTID_ntPwdHistory                      = 0x0009005e,
     433                DRSUAPI_ATTID_pwdLastSet                        = 0x00090060,
     434                DRSUAPI_ATTID_primaryGroupID                    = 0x00090062,
     435                DRSUAPI_ATTID_priorValue                        = 0x00090064,
     436                DRSUAPI_ATTID_supplementalCredentials           = 0x0009007d,
     437                DRSUAPI_ATTID_trustAuthIncoming                 = 0x00090081,
     438                DRSUAPI_ATTID_trustAuthOutgoing                 = 0x00090087,
     439                DRSUAPI_ATTID_userParameters                    = 0x0009008a,
     440                DRSUAPI_ATTID_profilePath                       = 0x0009008b,
     441                DRSUAPI_ATTID_objectSid                         = 0x00090092,
     442                DRSUAPI_ATTID_schemaIDGUID                      = 0x00090094,
     443                DRSUAPI_ATTID_comment                           = 0x0009009C,/* User-Comment */
     444                DRSUAPI_ATTID_accountExpires                    = 0x0009009f,
     445                DRSUAPI_ATTID_lmPwdHistory                      = 0x000900a0,
     446                DRSUAPI_ATTID_logonCount                        = 0x000900a9,
     447                DRSUAPI_ATTID_systemPossSuperiors               = 0x000900c3,
     448                DRSUAPI_ATTID_systemMayContain                  = 0x000900c4,
     449                DRSUAPI_ATTID_systemMustContain                 = 0x000900c5,
     450                DRSUAPI_ATTID_systemAuxiliaryClass              = 0x000900c6,
     451                DRSUAPI_ATTID_sAMAccountName                    = 0x000900dd,
     452                DRSUAPI_ATTID_sAMAccountType                    = 0x0009012e,
     453                DRSUAPI_ATTID_options                           = 0x00090133,
     454                DRSUAPI_ATTID_fSMORoleOwner                     = 0x00090171,
     455                DRSUAPI_ATTID_systemFlags                       = 0x00090177,
     456                DRSUAPI_ATTID_serverReference                   = 0x00090203,
     457                DRSUAPI_ATTID_serverReferenceBL                 = 0x00090204,
     458                DRSUAPI_ATTID_initialAuthIncoming               = 0x0009021b,
     459                DRSUAPI_ATTID_initialAuthOutgoing               = 0x0009021c,
     460                DRSUAPI_ATTID_wellKnownObjects                  = 0x0009026a,
     461                DRSUAPI_ATTID_dNSHostName                       = 0x0009026b,
     462                DRSUAPI_ATTID_isMemberOfPartialAttributeSet     = 0x0009027f,
     463                DRSUAPI_ATTID_userPrincipalName                 = 0x00090290,
     464                DRSUAPI_ATTID_groupType                         = 0x000902ee,
     465                DRSUAPI_ATTID_servicePrincipalName              = 0x00090303,
     466                DRSUAPI_ATTID_lastKnownParent                   = 0x0009030d,
     467                DRSUAPI_ATTID_objectCategory                    = 0x0009030e,
     468                DRSUAPI_ATTID_gPLink                            = 0x0009037b,
     469                DRSUAPI_ATTID_transportAddressAttribute         = 0x0009037f,
     470                DRSUAPI_ATTID_msDS_Behavior_Version             = 0x000905b3,
     471                DRSUAPI_ATTID_msDS_KeyVersionNumber             = 0x000906f6,
     472                DRSUAPI_ATTID_msDS_HasDomainNCs                 = 0x0009071c,
     473                DRSUAPI_ATTID_msDS_hasMasterNCs                 = 0x0009072c,
     474                DRSUAPI_ATTID_isRecycled                        = 0x0009080a,
     475
     476                DRSUAPI_ATTID_INVALID                           = 0xFFFFFFFF
    472477        } drsuapi_DsAttributeId;
    473478
     
    485490                drsuapi_DsReplicaHighWaterMark highwatermark;
    486491                drsuapi_DsReplicaCursorCtrEx *uptodateness_vector;
    487                 drsuapi_DsReplicaNeighbourFlags replica_flags;
     492                drsuapi_DrsOptions replica_flags;
    488493                uint32 max_object_count; /* w2k3 uses min(133,max(100,max_object_count)) */
    489494                uint32 max_ndr_size; /* w2k3 seems to ignore this */
     
    501506                drsuapi_DsReplicaHighWaterMark highwatermark;
    502507                drsuapi_DsReplicaCursorCtrEx *uptodateness_vector;
    503                 drsuapi_DsReplicaNeighbourFlags replica_flags;
     508                drsuapi_DrsOptions replica_flags;
    504509                uint32 max_object_count; /* w2k3 uses min(133,max(100,max_object_count)) */
    505510                uint32 max_ndr_size; /* w2k3 seems to ignore this */
     
    512517        } drsuapi_DsGetNCChangesRequest10;
    513518
    514         typedef [switch_type(int32)] union {
     519        typedef [switch_type(uint32)] union {
    515520                [case(5)] drsuapi_DsGetNCChangesRequest5 req5;
    516521                [case(8)] drsuapi_DsGetNCChangesRequest8 req8;
     
    545550        /* DN String values */
    546551        typedef [public,gensize] struct {
    547                 [value(ndr_size_drsuapi_DsReplicaObjectIdentifier3(r, ndr->iconv_convenience, ndr->flags))] uint32 __ndr_size;
     552                [value(ndr_size_drsuapi_DsReplicaObjectIdentifier3(r, ndr->flags))] uint32 __ndr_size;
    548553                [value(ndr_size_dom_sid28(&sid,ndr->flags))]  uint32 __ndr_size_sid;
    549554                GUID guid;
     
    554559
    555560        typedef [public] struct {
    556                 [value(ndr_size_drsuapi_DsReplicaObjectIdentifier3Binary_without_Binary(r, ndr->iconv_convenience, ndr->flags))] uint32 __ndr_size;
     561                [value(ndr_size_drsuapi_DsReplicaObjectIdentifier3Binary_without_Binary(r, ndr->flags))] uint32 __ndr_size;
    557562                [value(ndr_size_dom_sid28(&sid,ndr->flags))]  uint32 __ndr_size_sid;
    558563                GUID guid;
     
    564569        } drsuapi_DsReplicaObjectIdentifier3Binary;
    565570
    566         typedef [public] struct {
     571        typedef [public,noprint] struct {
    567572                drsuapi_DsAttributeId attid;
    568573                drsuapi_DsAttributeValueCtr value_ctr;
     
    617622                uint32 object_count;
    618623                /* this +55 is sometimes +56, so I don't know where this comes from... --metze */
    619                 [value(ndr_size_drsuapi_DsGetNCChangesCtr1(r,ndr->iconv_convenience,ndr->flags)+55)] uint32 __ndr_size;
     624                [value(ndr_size_drsuapi_DsGetNCChangesCtr1(r,ndr->flags)+55)] uint32 __ndr_size;
    620625                drsuapi_DsReplicaObjectListItemEx *first_object;
    621626                boolean32 more_data;
     
    651656                uint32 object_count;
    652657                /* this +55 is sometimes +56, so I don't know where this comes from... --metze */
    653                 [value(ndr_size_drsuapi_DsGetNCChangesCtr6(r,ndr->iconv_convenience,ndr->flags)+55)] uint32 __ndr_size;
     658                [value(ndr_size_drsuapi_DsGetNCChangesCtr6(r,ndr->flags)+55)] uint32 __ndr_size;
    654659                drsuapi_DsReplicaObjectListItemEx *first_object;
    655660                boolean32 more_data;
     
    718723
    719724        typedef struct {
    720                 [range(0,6)] int32 level;
     725                [range(0,6)] uint32 level;
    721726                [range(2,3)] drsuapi_DsGetNCChangesCompressionType type;
    722727                [switch_is(level | (type<<16))] drsuapi_DsGetNCChangesCompressedCtr ctr;
    723728        } drsuapi_DsGetNCChangesCtr7;
    724729
    725         typedef [switch_type(int32)] union {
     730        typedef [switch_type(uint32)] union {
    726731                [case(1)] drsuapi_DsGetNCChangesCtr1 ctr1;
    727732                [case(2)] drsuapi_DsGetNCChangesCtr2 ctr2;
     
    732737        WERROR drsuapi_DsGetNCChanges(
    733738                [in] policy_handle *bind_handle,
    734                 [in] int32 level,
     739                [in] uint32 level,
    735740                [in,ref,switch_is(level)] drsuapi_DsGetNCChangesRequest *req,
    736                 [out,ref] int32 *level_out,
     741                [out,ref] uint32 *level_out,
    737742                [out,ref,switch_is(*level_out)] drsuapi_DsGetNCChangesCtr *ctr
    738743                );
     
    741746        /* Function 0x04 */
    742747        /* [MS-DRSR] 4.1.26 */
    743         typedef bitmap {
    744                 DRSUAPI_DS_REPLICA_UPDATE_ASYNCHRONOUS_OPERATION        = 0x00000001,
    745                 DRSUAPI_DS_REPLICA_UPDATE_GETCHG_CHECK                  = 0x00000002,
    746                 DRSUAPI_DS_REPLICA_UPDATE_ADD_REFERENCE                 = 0x00000004,
    747                 DRSUAPI_DS_REPLICA_UPDATE_DELETE_REFERENCE              = 0x00000008,
    748                 DRSUAPI_DS_REPLICA_UPDATE_WRITEABLE                     = 0x00000010
    749         } drsuapi_DsReplicaUpdateRefsOptions;
    750748
    751749        typedef struct {
     
    753751                [ref,charset(DOS),string] uint8 *dest_dsa_dns_name;
    754752                GUID dest_dsa_guid;
    755                 drsuapi_DsReplicaUpdateRefsOptions options;
     753                drsuapi_DrsOptions options;
    756754        } drsuapi_DsReplicaUpdateRefsRequest1;
    757755
    758         typedef [switch_type(int32)] union {
     756        typedef [switch_type(uint32)] union {
    759757                [case(1)] drsuapi_DsReplicaUpdateRefsRequest1 req1;
    760758        } drsuapi_DsReplicaUpdateRefsRequest;
     
    762760        WERROR drsuapi_DsReplicaUpdateRefs(
    763761                [in] policy_handle *bind_handle,
    764                 [in] int32 level,
     762                [in] uint32 level,
    765763                [in,switch_is(level)] drsuapi_DsReplicaUpdateRefsRequest req
    766764                );
     
    768766        /*****************/
    769767        /* Function 0x05 */
    770         typedef bitmap {
    771                 DRSUAPI_DS_REPLICA_ADD_ASYNCHRONOUS_OPERATION   = 0x00000001,
    772                 DRSUAPI_DS_REPLICA_ADD_WRITEABLE                = 0x00000002
    773                 /* TODO ... */
    774         } drsuapi_DsReplicaAddOptions;
    775 
    776768
    777769        typedef struct {
     
    779771                [charset(UTF16),string] uint16 *source_dsa_address;
    780772                uint8 schedule[84];
    781                 drsuapi_DsReplicaAddOptions options;
     773                drsuapi_DrsOptions options;
    782774        } drsuapi_DsReplicaAddRequest1;
    783775
     
    788780                [charset(UTF16),string] uint16 *source_dsa_address;
    789781                uint8 schedule[84];
    790                 drsuapi_DsReplicaAddOptions options;
     782                drsuapi_DrsOptions options;
    791783        } drsuapi_DsReplicaAddRequest2;
    792784
    793         typedef [switch_type(int32)] union {
     785        typedef [switch_type(uint32)] union {
    794786                [case(1)] drsuapi_DsReplicaAddRequest1 req1;
    795787                [case(2)] drsuapi_DsReplicaAddRequest2 req2;
     
    798790        WERROR drsuapi_DsReplicaAdd(
    799791                [in] policy_handle *bind_handle,
    800                 [in] int32 level,
     792                [in] uint32 level,
    801793                [in,switch_is(level)] drsuapi_DsReplicaAddRequest req
    802794                );
     
    805797        /*****************/
    806798        /* Function 0x06 */
    807         typedef bitmap {
    808                 DRSUAPI_DS_REPLICA_ADD_ASYNCHRONOUS_OPERATION   = 0x00000001,
    809                 DRSUAPI_DS_REPLICA_ADD_WRITEABLE                = 0x00000002
    810                 /* TODO ... */
    811         } drsuapi_DsReplicaDeleteOptions;
    812 
    813 
    814799        typedef struct {
    815800                [ref] drsuapi_DsReplicaObjectIdentifier *naming_context;
    816801                [charset(UTF16),string] uint16 *source_dsa_address;
    817                 drsuapi_DsReplicaDeleteOptions options;
     802                drsuapi_DrsOptions options;
    818803        } drsuapi_DsReplicaDelRequest1;
    819804
    820         typedef [switch_type(int32)] union {
     805        typedef [switch_type(uint32)] union {
    821806                [case(1)] drsuapi_DsReplicaDelRequest1 req1;
    822807        } drsuapi_DsReplicaDelRequest;
     
    824809        WERROR drsuapi_DsReplicaDel(
    825810                [in] policy_handle *bind_handle,
    826                 [in] int32 level,
     811                [in] uint32 level,
    827812                [in,switch_is(level)] drsuapi_DsReplicaDelRequest req
    828813                );
     
    830815        /*****************/
    831816        /* Function 0x07 */
    832         typedef bitmap {
    833                 DRSUAPI_DS_REPLICA_ADD_ASYNCHRONOUS_OPERATION   = 0x00000001,
    834                 DRSUAPI_DS_REPLICA_ADD_WRITEABLE                = 0x00000002
    835                 /* TODO ... */
    836         } drsuapi_DsReplicaModifyOptions;
    837 
    838817
    839818        typedef struct {
     
    842821                [charset(UTF16),string] uint16 *source_dra_address;
    843822                uint8 schedule[84];
    844                 uint32 replica_flags;
     823                drsuapi_DrsOptions replica_flags;
    845824                uint32 modify_fields;
    846                 drsuapi_DsReplicaModifyOptions options;
     825                drsuapi_DrsOptions options;
    847826        } drsuapi_DsReplicaModRequest1;
    848827
    849         typedef [switch_type(int32)] union {
     828        typedef [switch_type(uint32)] union {
    850829                [case(1)] drsuapi_DsReplicaModRequest1 req1;
    851830        } drsuapi_DsReplicaModRequest;
     
    853832        WERROR drsuapi_DsReplicaMod(
    854833                [in] policy_handle *bind_handle,
    855                 [in] int32 level,
     834                [in] uint32 level,
    856835                [in,switch_is(level)] drsuapi_DsReplicaModRequest req
    857836                );
     
    884863        } drsuapi_DsGetMembershipsCtr1;
    885864
    886         typedef [switch_type(int32)] union {
     865        typedef [switch_type(uint32)] union {
    887866                [case(1)] drsuapi_DsGetMembershipsCtr1 ctr1;
    888867        } drsuapi_DsGetMembershipsCtr;
     
    894873                [size_is(count)] drsuapi_DsReplicaObjectIdentifier **info_array;
    895874                uint32 flags;
    896                 drsuapi_DsMembershipType type;
     875                [range(1,7)] drsuapi_DsMembershipType type;
    897876                drsuapi_DsReplicaObjectIdentifier *domain;
    898877        } drsuapi_DsGetMembershipsRequest1;
    899878
    900         typedef [switch_type(int32)] union {
     879        typedef [switch_type(uint32)] union {
    901880                [case(1)] drsuapi_DsGetMembershipsRequest1 req1;
    902881        } drsuapi_DsGetMembershipsRequest;
    903882
    904         [todo] WERROR drsuapi_DsGetMemberships(
     883        WERROR drsuapi_DsGetMemberships(
    905884                [in] policy_handle *bind_handle,
    906                 [in] int32 level,
     885                [in] uint32 level,
    907886                [in,ref] [switch_is(level)] drsuapi_DsGetMembershipsRequest *req,
    908                 [out,ref] int32 *level_out,
     887                [out,ref] uint32 *level_out,
    909888                [out,ref] [switch_is(*level_out)] drsuapi_DsGetMembershipsCtr *ctr
    910889                );
     
    916895        /*****************/
    917896        /* Function 0x0b */
    918         typedef struct {
    919                 uint32 unknown1;
    920                 uint32 unknown2;
    921                 [range(0,0x00A00000)] uint32 length;
    922                 [size_is(length)] uint8 *data;
     897        typedef [bitmap32bit] bitmap {
     898                DRSUAPI_NT4_CHANGELOG_GET_CHANGELOG             = 0x00000001,
     899                DRSUAPI_NT4_CHANGELOG_GET_SERIAL_NUMBERS        = 0x00000002
     900        } drsuapi_DsGetNT4ChangeLogFlags;
     901
     902        typedef struct {
     903                drsuapi_DsGetNT4ChangeLogFlags flags;
     904                uint32 preferred_maximum_length;
     905                [range(0,0x00A00000)] uint32 restart_length;
     906                [size_is(restart_length)] uint8 *restart_data;
    923907        } drsuapi_DsGetNT4ChangeLogRequest1;
    924908
     
    928912
    929913        typedef struct {
    930                 [range(0,0x00A00000)] uint32 length1;
    931                 [range(0,0x00A00000)] uint32 length2;
    932                 hyper unknown1;
    933                 NTTIME time2;
    934                 hyper unknown3;
    935                 NTTIME time4;
    936                 hyper unknown5;
    937                 NTTIME time6;
     914                [range(0,0x00A00000)] uint32 restart_length;
     915                [range(0,0x00A00000)] uint32 log_length;
     916                hyper sam_serial_number;
     917                NTTIME sam_creation_time;
     918                hyper builtin_serial_number;
     919                NTTIME builtin_creation_time;
     920                hyper lsa_serial_number;
     921                NTTIME lsa_creation_time;
    938922                NTSTATUS status;
    939                 [size_is(length1)] uint8 *data1;
    940                 [size_is(length2)] uint8 *data2;
     923                [size_is(restart_length)] uint8 *restart_data;
     924                [size_is(log_length)] uint8 *log_data;
    941925        } drsuapi_DsGetNT4ChangeLogInfo1;
    942926
     
    945929        } drsuapi_DsGetNT4ChangeLogInfo;
    946930
    947         [todo] WERROR drsuapi_DsGetNT4ChangeLog(
     931        WERROR drsuapi_DsGetNT4ChangeLog(
    948932                [in] policy_handle *bind_handle,
    949933                [in] uint32 level,
     
    975959
    976960        typedef [v1_enum] enum {
    977                 DRSUAPI_DS_NAME_FORMAT_UNKNOWN                  = 0,
    978                 DRSUAPI_DS_NAME_FORMAT_FQDN_1779                = 1,
    979                 DRSUAPI_DS_NAME_FORMAT_NT4_ACCOUNT              = 2,
    980                 DRSUAPI_DS_NAME_FORMAT_DISPLAY                  = 3,
    981                 DRSUAPI_DS_NAME_FORMAT_GUID                     = 6,
    982                 DRSUAPI_DS_NAME_FORMAT_CANONICAL                = 7,
    983                 DRSUAPI_DS_NAME_FORMAT_USER_PRINCIPAL           = 8,
    984                 DRSUAPI_DS_NAME_FORMAT_CANONICAL_EX             = 9,
    985                 DRSUAPI_DS_NAME_FORMAT_SERVICE_PRINCIPAL        = 10,
    986                 DRSUAPI_DS_NAME_FORMAT_SID_OR_SID_HISTORY       = 11,
    987                 DRSUAPI_DS_NAME_FORMAT_DNS_DOMAIN               = 12
     961                DRSUAPI_DS_NAME_FORMAT_UNKNOWN                  = 0x00000000,
     962                DRSUAPI_DS_NAME_FORMAT_FQDN_1779                = 0x00000001,
     963                DRSUAPI_DS_NAME_FORMAT_NT4_ACCOUNT              = 0x00000002,
     964                DRSUAPI_DS_NAME_FORMAT_DISPLAY                  = 0x00000003,
     965                DRSUAPI_DS_NAME_FORMAT_GUID                     = 0x00000006,
     966                DRSUAPI_DS_NAME_FORMAT_CANONICAL                = 0x00000007,
     967                DRSUAPI_DS_NAME_FORMAT_USER_PRINCIPAL           = 0x00000008,
     968                DRSUAPI_DS_NAME_FORMAT_CANONICAL_EX             = 0x00000009,
     969                DRSUAPI_DS_NAME_FORMAT_SERVICE_PRINCIPAL        = 0x0000000A,
     970                DRSUAPI_DS_NAME_FORMAT_SID_OR_SID_HISTORY       = 0x0000000B,
     971                DRSUAPI_DS_NAME_FORMAT_DNS_DOMAIN               = 0x0000000C,
     972                DRSUAPI_DS_NAME_FORMAT_UPN_AND_ALTSECID         = 0xFFFFFFEF,
     973                DRSUAPI_DS_NAME_FORMAT_NT4_ACCOUNT_NAME_SANS_DOMAIN_EX = 0xFFFFFFF0,
     974                DRSUAPI_DS_NAME_FORMAT_LIST_GLOBAL_CATALOG_SERVERS = 0xFFFFFFF1,
     975                DRSUAPI_DS_NAME_FORMAT_UPN_FOR_LOGON            = 0xFFFFFFF2,
     976                DRSUAPI_DS_NAME_FORMAT_LIST_SERVERS_WITH_DCS_IN_SITE = 0xFFFFFFF3,
     977                DRSUAPI_DS_NAME_FORMAT_STRING_SID_NAME          = 0xFFFFFFF4,
     978                DRSUAPI_DS_NAME_FORMAT_ALT_SECURITY_IDENTITIES_NAME = 0xFFFFFFF5,
     979                DRSUAPI_DS_NAME_FORMAT_LIST_NCS                 = 0xFFFFFFF6,
     980                DRSUAPI_DS_NAME_FORMAT_LIST_DOMAINS             = 0xFFFFFFF7,
     981                DRSUAPI_DS_NAME_FORMAT_MAP_SCHEMA_GUID          = 0xFFFFFFF8,
     982                DRSUAPI_DS_NAME_FORMAT_NT4_ACCOUNT_NAME_SANS_DOMAIN = 0xFFFFFFF9,
     983                DRSUAPI_DS_NAME_FORMAT_LIST_ROLES               = 0xFFFFFFFA,
     984                DRSUAPI_DS_NAME_FORMAT_LIST_INFO_FOR_SERVER     = 0xFFFFFFFB,
     985                DRSUAPI_DS_NAME_FORMAT_LIST_SERVERS_FOR_DOMAIN_IN_SITE = 0xFFFFFFFC,
     986                DRSUAPI_DS_NAME_FORMAT_LIST_DOMAINS_IN_SITE     = 0xFFFFFFFD,
     987                DRSUAPI_DS_NAME_FORMAT_LIST_SERVERS_IN_SITE     = 0xFFFFFFFE,
     988                DRSUAPI_DS_NAME_FORMAT_LIST_SITES               = 0xFFFFFFFF
    988989        } drsuapi_DsNameFormat;
    989990
     
    10021003        } drsuapi_DsNameRequest1;
    10031004
    1004         typedef [switch_type(int32)] union {
     1005        typedef [switch_type(uint32)] union {
    10051006                [case(1)] drsuapi_DsNameRequest1 req1;
    10061007        } drsuapi_DsNameRequest;
     
    10171018        } drsuapi_DsNameCtr1;
    10181019
    1019         typedef [switch_type(int32)] union {
     1020        typedef [switch_type(uint32)] union {
    10201021                [case(1)] drsuapi_DsNameCtr1 *ctr1;
    10211022        } drsuapi_DsNameCtr;
     
    10231024        WERROR drsuapi_DsCrackNames(
    10241025                [in] policy_handle *bind_handle,
    1025                 [in] int32 level,
     1026                [in] uint32 level,
    10261027                [in,ref,switch_is(level)] drsuapi_DsNameRequest *req,
    1027                 [out,ref] int32 *level_out,
     1028                [out,ref] uint32 *level_out,
    10281029                [out,ref,switch_is(*level_out)] drsuapi_DsNameCtr *ctr
    10291030                );
     
    10451046        } drsuapi_DsWriteAccountSpnRequest1;
    10461047
    1047         typedef [switch_type(int32)] union {
     1048        typedef [switch_type(uint32)] union {
    10481049                [case(1)] drsuapi_DsWriteAccountSpnRequest1 req1;
    10491050        } drsuapi_DsWriteAccountSpnRequest;
     
    10531054        } drsuapi_DsWriteAccountSpnResult1;
    10541055
    1055         typedef [switch_type(int32)] union {
     1056        typedef [switch_type(uint32)] union {
    10561057                [case(1)] drsuapi_DsWriteAccountSpnResult1 res1;
    10571058        } drsuapi_DsWriteAccountSpnResult;
     
    10591060        WERROR drsuapi_DsWriteAccountSpn(
    10601061                [in] policy_handle *bind_handle,
    1061                 [in] int32 level,
     1062                [in] uint32 level,
    10621063                [in,ref,switch_is(level)] drsuapi_DsWriteAccountSpnRequest *req,
    1063                 [out,ref] int32 *level_out,
     1064                [out,ref] uint32 *level_out,
    10641065                [out,ref,switch_is(*level_out)] drsuapi_DsWriteAccountSpnResult *res
    10651066                );
     
    10731074        } drsuapi_DsRemoveDSServerRequest1;
    10741075
    1075         typedef [switch_type(int32)] union {
     1076        typedef [switch_type(uint32)] union {
    10761077                [case(1)] drsuapi_DsRemoveDSServerRequest1 req1;
    10771078        } drsuapi_DsRemoveDSServerRequest;
     
    10811082        } drsuapi_DsRemoveDSServerResult1;
    10821083
    1083         typedef [switch_type(int32)] union {
     1084        typedef [switch_type(uint32)] union {
    10841085                [case(1)] drsuapi_DsRemoveDSServerResult1 res1;
    10851086        } drsuapi_DsRemoveDSServerResult;
     
    10871088        WERROR drsuapi_DsRemoveDSServer(
    10881089                [in] policy_handle *bind_handle,
    1089                 [in] int32 level,
     1090                [in] uint32 level,
    10901091                [in,ref,switch_is(level)] drsuapi_DsRemoveDSServerRequest *req,
    1091                 [out,ref] int32 *level_out,
     1092                [out,ref] uint32 *level_out,
    10921093                [out,ref,switch_is(*level_out)] drsuapi_DsRemoveDSServerResult *res
    10931094                );
     
    12371238        const char *DRSUAPI_NTDSDSA_KRB5_SERVICE_GUID = "E3514235-4B06-11D1-AB04-00C04FC2DCD2";
    12381239
     1240        /* Error codes to classify an error that occurs
     1241         * during a search for, or the update of,
     1242         * a directory object */
     1243        typedef [v1_enum] enum {
     1244                DRSUAPI_DIRERR_OK         = 0,
     1245                DRSUAPI_DIRERR_ATTRIBUTE  = 1,
     1246                DRSUAPI_DIRERR_NAME       = 2,
     1247                DRSUAPI_DIRERR_REFERRAL   = 3,
     1248                DRSUAPI_DIRERR_SECURITY   = 4,
     1249                DRSUAPI_DIRERR_SERVICE    = 5,
     1250                DRSUAPI_DIRERR_UPDATE     = 6,
     1251                DRSUAPI_DIRERR_SYSTEM     = 7
     1252        } drsuapi_DsAddEntry_DirErr;
     1253
    12391254        /*
    1240          * please note the the current idl
    1241          * for DsAddEntry does only parse
    1242          * what I saw between 2 w2k3 boxes
    1243          * in my dssync experiments I got some other replies
    1244          * so all I want to say is that this is very incomplete yet...
    1245          * --metze
     1255         * Ref: DRS_MSG_ADDENTRYREQ_V2, [MS-DRSR]: 4.1.1.1.3
    12461256         */
    12471257        typedef struct {
     
    12491259        } drsuapi_DsAddEntryRequest2;
    12501260
    1251         typedef [switch_type(int32)] union {
     1261        /* Buffer type is actually more
     1262         * like a semi Flags
     1263         * Ref: DRS_SecBuffer, [MS-DRSR]: 5.41 */
     1264        typedef [v1_enum,noprint] enum {
     1265                DRSUAPI_SECBUFFER_EMPTY          = 0x00000000,
     1266                DRSUAPI_SECBUFFER_DATA           = 0x00000001,
     1267                DRSUAPI_SECBUFFER_TOKEN          = 0x00000002,
     1268                DRSUAPI_SECBUFFER_PKG_PARAMS     = 0x00000003,
     1269                DRSUAPI_SECBUFFER_MISSING        = 0x00000004,
     1270                DRSUAPI_SECBUFFER_EXTRA          = 0x00000005,
     1271                DRSUAPI_SECBUFFER_STREAM_TRAILER = 0x00000006,
     1272                DRSUAPI_SECBUFFER_STREAM_HEADER  = 0x00000007,
     1273                DRSUAPI_SECBUFFER_READONLY       = 0x80000000
     1274        } drsuapi_SecBufferType;
     1275
     1276        typedef struct {
     1277                [range(0,10000)] uint32 buf_size;
     1278                drsuapi_SecBufferType buf_type;
     1279                [size_is(buf_size)] uint8 *buffer;
     1280        } drsuapi_SecBuffer;
     1281
     1282        typedef struct {
     1283                [value(0)] uint32 version;
     1284                [range(0,10000)] uint32 buff_count;
     1285                [size_is(buff_count)] drsuapi_SecBuffer *buffers;
     1286        } drsuapi_SecBufferDesc;
     1287
     1288        /*
     1289         * Ref: DRS_MSG_ADDENTRYREQ_V3, [MS-DRSR]: 4.1.1.1.4
     1290         */
     1291        typedef struct {
     1292                drsuapi_DsReplicaObjectListItem first_object;
     1293                drsuapi_SecBufferDesc *client_creds;
     1294        } drsuapi_DsAddEntryRequest3;
     1295
     1296        typedef [switch_type(uint32)] union {
    12521297                [case(2)] drsuapi_DsAddEntryRequest2 req2;
     1298                [case(3)] drsuapi_DsAddEntryRequest3 req3;
    12531299        } drsuapi_DsAddEntryRequest;
    12541300
    1255         typedef struct {
    1256                 uint32 unknown1;
     1301        /* Generic extended error info
     1302         * commonly used in most places
     1303         * where rich error info is returned */
     1304        typedef struct {
     1305                uint32  dsid;           /* implementation-specific diagnostic code */
     1306                WERROR  extended_err;   /* 0, STATUS code, or Windows error code */
     1307                uint32  extended_data;  /* implementation-specific diagnostic code */
     1308                uint16  problem;        /* 0 or PROBLEM error code */
     1309        } drsuapi_DsAddEntryErrorInfoX;
     1310
     1311        /* Attribute errors
     1312         * Ref: ATRERR_DRS_WIRE_V1, [MS-DRSR]: 4.1.1.1.11 */
     1313        typedef struct {
     1314                uint32  dsid;
     1315                WERROR  extended_err;
     1316                uint32  extended_data;
     1317                uint16  problem;
     1318                drsuapi_DsAttributeId attid;
     1319                boolean32 is_val_returned;
     1320                drsuapi_DsAttributeValue attr_val;
     1321        } drsuapi_DsAddEntry_AttrErr_V1;
     1322
     1323        typedef [noprint] struct {
     1324                drsuapi_DsAddEntry_AttrErrListItem_V1 *next;
     1325                drsuapi_DsAddEntry_AttrErr_V1 err_data;
     1326        } drsuapi_DsAddEntry_AttrErrListItem_V1;
     1327
     1328        typedef struct {
     1329                drsuapi_DsReplicaObjectIdentifier *id;
     1330                uint32 count;
     1331                drsuapi_DsAddEntry_AttrErrListItem_V1 first;
     1332        } drsuapi_DsAddEntryErrorInfo_Attr_V1;
     1333
     1334        /* Name resolution error
     1335         * Ref: NAMERR_DRS_WIRE_V1, [MS-DRSR]: 4.1.1.1.14 */
     1336        typedef struct {
     1337                uint32  dsid;
     1338                WERROR  extended_err;
     1339                uint32  extended_data;
     1340                uint16  problem;
     1341                drsuapi_DsReplicaObjectIdentifier *id_matched; /* The best match for the supplied object identity */
     1342        } drsuapi_DsAddEntryErrorInfo_Name_V1;
     1343
     1344        /* Referral error
     1345         * Ref: REFERR_DRS_WIRE_V1, [MS-DRSR]: 4.1.1.1.15 */
     1346        typedef struct {
     1347                [value(83)] uint8  name_res;    /* Must be 'S' */
     1348                [value(0)]  uint8  unused_pad;
     1349                [value(0)]  uint16 next_rdn;
     1350        } drsuapi_NameResOp_V1;
     1351
     1352        typedef [enum16bit] enum {
     1353                DRSUAPI_CH_REFTYPE_SUPERIOR     = 0x0000, /* referral to a superior DC */
     1354                DRSUAPI_CH_REFTYPE_SUBORDINATE  = 0x0001, /* referral to a subordinate DC */
     1355                DRSUAPI_CH_REFTYPE_NSSR         = 0x0002, /* Not used */
     1356                DRSUAPI_CH_REFTYPE_CROSS        = 0x0003  /* A referral to an external crossRef object */
     1357        } drsuapi_DsAddEntry_RefType;
     1358
     1359        typedef [enum8bit] enum {
     1360                DRSUAPI_SE_CHOICE_BASE_ONLY     = 0x00,
     1361                DRSUAPI_SE_CHOICE_IMMED_CHLDRN  = 0x01,
     1362                DRSUAPI_SE_CHOICE_WHOLE_SUBTREE = 0x02
     1363        } drsuapi_DsAddEntry_ChoiceType;
     1364
     1365        /* list of network names of the DCs
     1366         * to which the referral is directed */
     1367        typedef struct  {
     1368                drsuapi_DsaAddressListItem_V1 *next;
     1369                lsa_String *address;
     1370        } drsuapi_DsaAddressListItem_V1;
     1371
     1372        typedef struct {
     1373                drsuapi_DsReplicaObjectIdentifier *id_target; /* object to which the referral is directed */
     1374                drsuapi_NameResOp_V1 op_state;
     1375                [value(0)] uint16 rdn_alias;
     1376                [value(0)] uint16 rdn_internal;
     1377                drsuapi_DsAddEntry_RefType ref_type;
     1378                uint16 addr_list_count;
     1379                drsuapi_DsaAddressListItem_V1 *addr_list;
     1380                drsuapi_DsAddEntry_RefErrListItem_V1 *next;
     1381                boolean32 is_choice_set;
     1382                drsuapi_DsAddEntry_ChoiceType choice;
     1383        } drsuapi_DsAddEntry_RefErrListItem_V1;
     1384
     1385        typedef struct {
     1386                uint32  dsid;
     1387                WERROR  extended_err;
     1388                uint32  extended_data;
     1389                drsuapi_DsAddEntry_RefErrListItem_V1 refer;
     1390        } drsuapi_DsAddEntryErrorInfo_Referr_V1;
     1391
     1392        typedef [switch_type(uint32)] union {
     1393                [case(1)] drsuapi_DsAddEntryErrorInfo_Attr_V1   attr_err;
     1394                [case(2)] drsuapi_DsAddEntryErrorInfo_Name_V1   name_err;
     1395                [case(3)] drsuapi_DsAddEntryErrorInfo_Referr_V1 referral_err;
     1396                [case(4)] drsuapi_DsAddEntryErrorInfoX          security_err;
     1397                [case(5)] drsuapi_DsAddEntryErrorInfoX          service_err;
     1398                [case(6)] drsuapi_DsAddEntryErrorInfoX          update_err;
     1399                [case(7)] drsuapi_DsAddEntryErrorInfoX          system_err;
     1400        } drsuapi_DsAddEntryErrorInfo;
     1401
     1402        typedef struct {
    12571403                WERROR status;
    1258                 uint32 unknown2;
    1259                 uint16 unknown3;
    1260         } drsuapi_DsAddEntryErrorInfoX;
    1261 
    1262         typedef struct {
    1263                 [range(0,10485760)] uint32 size;
    1264                 [size_is(size)] uint8 *data;
    1265         } drsuapi_DsAddEntryExtraErrorBuffer;
    1266 
    1267         typedef struct {
    1268                 drsuapi_DsAddEntryErrorInfoX error;
    1269                 drsuapi_DsAttributeId attid;
    1270                 uint32 unknown2;
    1271                 drsuapi_DsAddEntryExtraErrorBuffer buffer;
    1272         } drsuapi_DsAddEntryExtraError1;
    1273 
    1274         typedef /*[noprint]*/ struct {
    1275                 drsuapi_DsAddEntryErrorListItem1 *next;
    1276                 drsuapi_DsAddEntryExtraError1 error;
    1277         } drsuapi_DsAddEntryErrorListItem1;
    1278 
    1279         typedef struct {
    1280                 drsuapi_DsReplicaObjectIdentifier *id;
    1281                 WERROR status;
    1282                 drsuapi_DsAddEntryErrorListItem1 first;
    1283         } drsuapi_DsAddEntryErrorInfo1;
    1284 
    1285         typedef [switch_type(uint32)] union {
    1286                 [case(1)] drsuapi_DsAddEntryErrorInfo1 error1;
    1287 /*              [case(2)] drsuapi_DsAddEntryErrorInfo2 error2;
    1288                 [case(3)] drsuapi_DsAddEntryErrorInfo3 error3;
    1289 */              [case(4)] drsuapi_DsAddEntryErrorInfoX errorX;
    1290                 [case(5)] drsuapi_DsAddEntryErrorInfoX errorX;
    1291                 [case(6)] drsuapi_DsAddEntryErrorInfoX errorX;
    1292                 [case(7)] drsuapi_DsAddEntryErrorInfoX errorX;
    1293         } drsuapi_DsAddEntryErrorInfo;
    1294 
    1295         typedef struct {
    1296                 WERROR status;
    1297                 uint32 level;
    1298                 [switch_is(level)] drsuapi_DsAddEntryErrorInfo *info;
    1299         } drsuapi_DsAddEntryError1;
    1300 
    1301         typedef [switch_type(uint32)] union {
    1302                 [case(1)] drsuapi_DsAddEntryError1 info1;
    1303         } drsuapi_DsAddEntryError;
     1404                drsuapi_DsAddEntry_DirErr dir_err;
     1405                [switch_is(dir_err)] drsuapi_DsAddEntryErrorInfo *info;
     1406        } drsuapi_DsAddEntry_ErrData_V1;
     1407
     1408        typedef [switch_type(uint32)] union {
     1409                [case(1)] drsuapi_DsAddEntry_ErrData_V1 v1;
     1410        } drsuapi_DsAddEntry_ErrData;
    13041411
    13051412        typedef struct {
     
    13101417        typedef struct {
    13111418                drsuapi_DsReplicaObjectIdentifier *id;
    1312                 uint32 unknown1;
    1313                 drsuapi_DsAddEntryErrorInfoX error;
     1419                drsuapi_DsAddEntry_DirErr dir_err;
     1420                uint32                    dsid;          /* implementation-specific diagnostic code */
     1421                WERROR                    extended_err;  /* 0, STATUS code, or Windows error code */
     1422                uint32                    extended_data; /* implementation-specific diagnostic code */
     1423                uint16                    problem;       /* 0 or PROBLEM error code */
    13141424                [range(0,10000)] uint32 count;
    13151425                [size_is(count)] drsuapi_DsReplicaObjectIdentifier2 *objects;
     
    13181428        typedef struct {
    13191429                drsuapi_DsReplicaObjectIdentifier *id;
    1320                 uint32 level;
    1321                 [switch_is(level)] drsuapi_DsAddEntryError *error;
     1430                uint32 err_ver; /* Must be 1 */
     1431                [switch_is(err_ver)] drsuapi_DsAddEntry_ErrData *err_data;
    13221432                [range(0,10000)] uint32 count;
    13231433                [size_is(count)] drsuapi_DsReplicaObjectIdentifier2 *objects;
    13241434        } drsuapi_DsAddEntryCtr3;
    13251435
    1326         typedef [switch_type(int32)] union {
     1436        typedef [switch_type(uint32)] union {
    13271437                [case(2)] drsuapi_DsAddEntryCtr2 ctr2;
    13281438                [case(3)] drsuapi_DsAddEntryCtr3 ctr3;
     
    13311441        [public] WERROR drsuapi_DsAddEntry(
    13321442                [in] policy_handle *bind_handle,
    1333                 [in] int32 level,
     1443                [in] uint32 level,
    13341444                [in,ref,switch_is(level)] drsuapi_DsAddEntryRequest *req,
    1335                 [out,ref] int32 *level_out,
     1445                [out,ref] uint32 *level_out,
    13361446                [out,ref,switch_is(*level_out)] drsuapi_DsAddEntryCtr *ctr
    13371447                );
     
    13781488                DRSUAPI_DS_REPLICA_INFO_OBJ_METADATA2                   = 9,
    13791489                DRSUAPI_DS_REPLICA_INFO_ATTRIBUTE_VALUE_METADATA2       = 10,
    1380                 DRSUAPI_DS_REPLICA_INFO_NEIGHBORS02                     = -2,
    1381                 DRSUAPI_DS_REPLICA_INFO_CONNECTIONS04                   = -4,
    1382                 DRSUAPI_DS_REPLICA_INFO_CURSORS05                       = -5,
    1383                 DRSUAPI_DS_REPLICA_INFO_06                              = -6
     1490                DRSUAPI_DS_REPLICA_INFO_REPSTO                          = -2,
     1491                DRSUAPI_DS_REPLICA_INFO_CLIENT_CONTEXTS                 = -4,
     1492                DRSUAPI_DS_REPLICA_INFO_UPTODATE_VECTOR_V1              = -5,
     1493                DRSUAPI_DS_REPLICA_INFO_SERVER_OUTGOING_CALLS           = -6
    13841494        } drsuapi_DsReplicaInfoType;
    13851495
     
    13871497                drsuapi_DsReplicaInfoType info_type;
    13881498                [charset(UTF16),string] uint16 *object_dn;
    1389                 GUID guid1;
     1499                GUID source_dsa_guid;
    13901500        } drsuapi_DsReplicaGetInfoRequest1;
    13911501
     
    13931503                drsuapi_DsReplicaInfoType info_type;
    13941504                [charset(UTF16),string] uint16 *object_dn;
    1395                 GUID guid1;
    1396                 uint32 unknown1;
    1397                 [charset(UTF16),string] uint16 *string1;
    1398                 [charset(UTF16),string] uint16 *string2;
    1399                 uint32 unknown2;
     1505                GUID source_dsa_guid;
     1506                uint32 flags;
     1507                [charset(UTF16),string] uint16 *attribute_name;
     1508                [charset(UTF16),string] uint16 *value_dn_str;
     1509                uint32 enumeration_context;
    14001510        } drsuapi_DsReplicaGetInfoRequest2;
    14011511
     
    14101520                [charset(UTF16),string] uint16 *source_dsa_address;
    14111521                [charset(UTF16),string] uint16 *transport_obj_dn;
    1412                 drsuapi_DsReplicaNeighbourFlags replica_flags;
     1522                drsuapi_DrsOptions replica_flags;
    14131523                uint32 reserved;
    14141524                GUID naming_context_obj_guid;
     
    14731583        } drsuapi_DsReplicaOpType;
    14741584
    1475         typedef [switch_type(drsuapi_DsReplicaOpType)] union {
    1476                 [case(DRSUAPI_DS_REPLICA_OP_TYPE_SYNC)]         drsuapi_DsReplicaSyncOptions sync;
    1477                 [case(DRSUAPI_DS_REPLICA_OP_TYPE_ADD)]          drsuapi_DsReplicaAddOptions add;
    1478                 [case(DRSUAPI_DS_REPLICA_OP_TYPE_DELETE)]       drsuapi_DsReplicaDeleteOptions op_delete;
    1479                 [case(DRSUAPI_DS_REPLICA_OP_TYPE_MODIFY)]       drsuapi_DsReplicaModifyOptions modify;
    1480                 [case(DRSUAPI_DS_REPLICA_OP_TYPE_UPDATE_REFS)]  drsuapi_DsReplicaUpdateRefsOptions update_refs;
    1481                 [default] uint32 unknown;
    1482         } drsuapi_DsRplicaOpOptions;
    1483 
    14841585        typedef struct {
    14851586                NTTIME operation_start;
     
    14871588                uint32 priority;
    14881589                drsuapi_DsReplicaOpType operation_type;
    1489                 [switch_is(operation_type)] drsuapi_DsRplicaOpOptions options;
     1590                drsuapi_DrsOptions options;
    14901591                [charset(UTF16),string] uint16 *nc_dn;
    14911592                [charset(UTF16),string] uint16 *remote_dsa_obj_dn;
     
    15171618        typedef struct {
    15181619                uint32 count;
    1519                 int32 enumeration_context;
     1620                uint32 enumeration_context;
    15201621                [size_is(count)] drsuapi_DsReplicaAttrValMetaData array[];
    15211622        } drsuapi_DsReplicaAttrValMetaDataCtr;
     
    15231624        typedef struct {
    15241625                uint32 count;
    1525                 int32 enumeration_context;
     1626                uint32 enumeration_context;
    15261627                [size_is(count)] drsuapi_DsReplicaCursor2 array[];
    15271628        } drsuapi_DsReplicaCursor2Ctr;
     
    15361637        typedef struct {
    15371638                uint32 count;
    1538                 int32 enumeration_context;
     1639                uint32 enumeration_context;
    15391640                [size_is(count)] drsuapi_DsReplicaCursor3 array[];
    15401641        } drsuapi_DsReplicaCursor3Ctr;
     
    15521653        typedef struct {
    15531654                uint32 count;
    1554                 int32 enumeration_context;
     1655                uint32 enumeration_context;
    15551656                [size_is(count)] drsuapi_DsReplicaObjMetaData2 array[];
    15561657        } drsuapi_DsReplicaObjMetaData2Ctr;
     
    15731674        typedef struct {
    15741675                uint32 count;
    1575                 int32 enumeration_context;
     1676                uint32 enumeration_context;
    15761677                [size_is(count)] drsuapi_DsReplicaAttrValMetaData2 array[];
    15771678        } drsuapi_DsReplicaAttrValMetaData2Ctr;
     
    16221723                [case(DRSUAPI_DS_REPLICA_INFO_OBJ_METADATA2)] drsuapi_DsReplicaObjMetaData2Ctr *objmetadata2;
    16231724                [case(DRSUAPI_DS_REPLICA_INFO_ATTRIBUTE_VALUE_METADATA2)] drsuapi_DsReplicaAttrValMetaData2Ctr *attrvalmetadata2;
    1624                 [case(DRSUAPI_DS_REPLICA_INFO_NEIGHBORS02)] drsuapi_DsReplicaNeighbourCtr *neighbours02;
    1625                 [case(DRSUAPI_DS_REPLICA_INFO_CONNECTIONS04)] drsuapi_DsReplicaConnection04Ctr *connections04;
    1626                 [case(DRSUAPI_DS_REPLICA_INFO_CURSORS05)] drsuapi_DsReplicaCursorCtrEx *cursors05;
    1627                 [case(DRSUAPI_DS_REPLICA_INFO_06)] drsuapi_DsReplica06Ctr *i06;
     1725                [case(DRSUAPI_DS_REPLICA_INFO_REPSTO)] drsuapi_DsReplicaNeighbourCtr *repsto;
     1726                [case(DRSUAPI_DS_REPLICA_INFO_CLIENT_CONTEXTS)] drsuapi_DsReplicaConnection04Ctr *clientctx;
     1727                [case(DRSUAPI_DS_REPLICA_INFO_UPTODATE_VECTOR_V1)] drsuapi_DsReplicaCursorCtrEx *udv1;
     1728                [case(DRSUAPI_DS_REPLICA_INFO_SERVER_OUTGOING_CALLS)] drsuapi_DsReplica06Ctr *srvoutgoingcalls;
    16281729        } drsuapi_DsReplicaInfo;
    16291730
     
    16481749        } drsuapi_DsGetMemberships2Ctr1;
    16491750
    1650         typedef [switch_type(int32)] union {
     1751        typedef [switch_type(uint32)] union {
    16511752                [case(1)] drsuapi_DsGetMembershipsCtr1 ctr1;
    16521753        } drsuapi_DsGetMemberships2Ctr;
     
    16571758        } drsuapi_DsGetMemberships2Request1;
    16581759
    1659         typedef [switch_type(int32)] union {
     1760        typedef [switch_type(uint32)] union {
    16601761                [case(1)] drsuapi_DsGetMemberships2Request1 req1;
    16611762        } drsuapi_DsGetMemberships2Request;
     
    16631764        WERROR drsuapi_DsGetMemberships2(
    16641765                [in] policy_handle *bind_handle,
    1665                 [in] int32 level,
     1766                [in] uint32 level,
    16661767                [in,ref] [switch_is(level)] drsuapi_DsGetMemberships2Request *req,
    1667                 [out,ref] int32 *level_out,
     1768                [out,ref] uint32 *level_out,
    16681769                [out,ref] [switch_is(*level_out)] drsuapi_DsGetMemberships2Ctr *ctr
    16691770                );
     
    16871788                [range(0,10000)] uint32 num_info;
    16881789                [size_is(num_info)] drsuapi_DsSiteCostInfo *info;
    1689                 uint32 unknown;
     1790                [value(0)] uint32 flags_reserved;
    16901791        } drsuapi_QuerySitesByCostCtr1;
    16911792
    1692         typedef [switch_type(int32)] union {
     1793        typedef [switch_type(uint32)] union {
    16931794                [case(1)] drsuapi_QuerySitesByCostCtr1 ctr1;
    16941795        } drsuapi_QuerySitesByCostCtr;
     
    17011802        } drsuapi_QuerySitesByCostRequest1;
    17021803
    1703         typedef [switch_type(int32)] union {
     1804        typedef [switch_type(uint32)] union {
    17041805                [case(1)] drsuapi_QuerySitesByCostRequest1 req1;
    17051806        } drsuapi_QuerySitesByCostRequest;
     
    17071808        WERROR drsuapi_QuerySitesByCost(
    17081809                [in] policy_handle *bind_handle,
    1709                 [in] int32 level,
     1810                [in] uint32 level,
    17101811                [in,ref] [switch_is(level)] drsuapi_QuerySitesByCostRequest *req,
    1711                 [out,ref] int32 *level_out,
     1812                [out,ref] uint32 *level_out,
    17121813                [out,ref] [switch_is(*level_out)] drsuapi_QuerySitesByCostCtr *ctr
    17131814        );
Note: See TracChangeset for help on using the changeset viewer.