Changeset 988 for vendor/current/librpc/idl/drsuapi.idl
- Timestamp:
- Nov 24, 2016, 1:14:11 PM (9 years ago)
- File:
-
- 1 edited
-
vendor/current/librpc/idl/drsuapi.idl (modified) (13 diffs)
Legend:
- Unmodified
- Added
- Removed
-
vendor/current/librpc/idl/drsuapi.idl
r740 r988 59 59 } drsuapi_DrsOptions; 60 60 61 /* see DRS_MSG_REPMOD_V1 */ 62 typedef [public,bitmap32bit] bitmap { 63 DRSUAPI_DRS_UPDATE_FLAGS = 0x00000001, 64 DRSUAPI_DRS_UPDATE_ADDRESS = 0x00000002, 65 DRSUAPI_DRS_UPDATE_SCHEDULE = 0x00000004 66 } drsuapi_DrsUpdate; 67 61 68 /*****************/ 62 69 /* Function 0x00 */ … … 109 116 110 117 /* this is used by w2k */ 111 typedef struct {118 typedef [public] struct { 112 119 drsuapi_SupportedExtensions supported_extensions; 113 120 GUID site_guid; … … 116 123 117 124 /* this is used by w2k3 */ 118 typedef struct {125 typedef [public] struct { 119 126 drsuapi_SupportedExtensions supported_extensions; 120 127 GUID site_guid; … … 123 130 } drsuapi_DsBindInfo28; 124 131 132 typedef [public] struct { 133 drsuapi_SupportedExtensions supported_extensions; 134 GUID site_guid; 135 uint32 pid; 136 uint32 repl_epoch; 137 drsuapi_SupportedExtensionsExt supported_extensions_ext; 138 } drsuapi_DsBindInfo32; 139 125 140 /* this is used by w2k8 */ 126 typedef struct {141 typedef [public] struct { 127 142 drsuapi_SupportedExtensions supported_extensions; 128 143 GUID site_guid; … … 133 148 } drsuapi_DsBindInfo48; 134 149 135 typedef struct { 150 /* this is used by w2k12 R2 [MS-DRSR] Section 5.39 */ 151 typedef [public] struct { 152 drsuapi_SupportedExtensions supported_extensions; 153 GUID site_guid; 154 uint32 pid; 155 uint32 repl_epoch; 156 drsuapi_SupportedExtensionsExt supported_extensions_ext; 157 GUID config_dn_guid; 158 drsuapi_SupportedExtensionsExt supported_capabilities_ext; 159 } drsuapi_DsBindInfo52; 160 161 typedef [public] struct { 136 162 [flag(NDR_REMAINING)] DATA_BLOB info; 137 163 } drsuapi_DsBindInfoFallBack; 164 165 typedef [nopull, nopush, noprint] [nodiscriminant] union { 166 [case(24)][subcontext(0), subcontext_size(24)] drsuapi_DsBindInfo24 info24; 167 [case(28)][subcontext(0), subcontext_size(28)] drsuapi_DsBindInfo28 info28; 168 [case(32)][subcontext(0), subcontext_size(32)] drsuapi_DsBindInfo32 info32; 169 [case(48)][subcontext(0), subcontext_size(48)] drsuapi_DsBindInfo48 info48; 170 [case(52)][subcontext(0), subcontext_size(52)] drsuapi_DsBindInfo52 info52; 171 /* 172 * The size for the defaut case is a bit arbitrary it in fact the value 173 * of the switch but we can't reference it. 174 * As we hand(un-)marshall this structure it has 0 impact and makes 175 * pidl happy for wireshark too 176 */ 177 [default][subcontext(0), subcontext_size(48)] drsuapi_DsBindInfoFallBack Fallback; 178 } drsuapi_DsBindInfo; 179 180 /* the drsuapi_DsBindInfoCtr was this before 181 * typedef [flag(NDR_PAHEX)] struct { 182 * [range(1,10000)] uint32 length; 183 * [size_is(length)] uint8 data[]; 184 * } drsuapi_DsBindInfo; 185 * 186 * but we don't want the caller to manually decode this blob, 187 * so we're doing it here 188 */ 189 190 /* 191 * MS-DRSR.pdf gives the following definition 192 typedef struct { 193 [range(1,10000)] DWORD cb; 194 [size_is(cb)] BYTE rgb[]; 195 } DRS_EXTENSIONS; 196 197 But we use a subcontext which has a slighly different signification on how 198 data are laid out. 199 With the MS-DRSR definition we will have 200 size_is_cb cv rgb_array 201 with size_is_cb being a uint3264 and cv being a uint32 202 203 We used to have 204 typedef struct { 205 [range(1,10000)] uint32 length; 206 [switch_is(length)] drsuapi_DsBindInfo info; 207 } drsuapi_DsBindInfoCtr; 138 208 139 209 typedef [nodiscriminant] union { … … 144 214 } drsuapi_DsBindInfo; 145 215 146 /* the drsuapi_DsBindInfoCtr was this before 147 * typedef [flag(NDR_PAHEX)] struct { 148 * [range(1,10000)] uint32 length; 149 * [size_is(length)] uint8 data[]; 150 * } drsuapi_DsBindInfo; 151 * 152 * but we don't want the caller to manually decode this blob, 153 * so we're doing it here 154 */ 155 156 typedef struct { 157 [range(1,10000)] uint32 length; 216 With this definition data is laid out this way: 217 length subcontext_size drsuapi_DsBindInfoxx 218 with length being a uint32 and subcontext_size being a uint3264 219 220 It has clearly an impact on the way things are aligned when using NDR64 221 */ 222 typedef [flag(NDR_NOALIGN)] struct { 223 [range(1,10000)] uint3264 length; 224 [value(length)] uint32 __ndr_length; 158 225 [switch_is(length)] drsuapi_DsBindInfo info; 159 226 } drsuapi_DsBindInfoCtr; … … 198 265 [ref] drsuapi_DsReplicaObjectIdentifier *naming_context; 199 266 GUID source_dsa_guid; 200 astring*source_dsa_dns; /* Source DSA dns_name in <guid>._msdcs.<domain_dns> form */267 [charset(DOS),string] char *source_dsa_dns; /* Source DSA dns_name in <guid>._msdcs.<domain_dns> form */ 201 268 drsuapi_DrsOptions options; 202 269 } drsuapi_DsReplicaSyncRequest1; … … 393 460 DRSUAPI_ATTID_displayName = 0x0002000d, 394 461 DRSUAPI_ATTID_hasMasterNCs = 0x0002000e, 462 DRSUAPI_ATTID_nCName = 0x00020010, 395 463 DRSUAPI_ATTID_subClassOf = 0x00020015, 396 464 DRSUAPI_ATTID_governsID = 0x00020016, … … 539 607 /* Generic DATA_BLOB values */ 540 608 typedef struct { 541 [range(0, 10485760),value(ndr_size_DATA_BLOB(0,blob,0))] uint32 __ndr_size;609 [range(0,26214400),value(ndr_size_DATA_BLOB(0,blob,0))] uint32 __ndr_size; 542 610 DATA_BLOB *blob; 543 611 } drsuapi_DsAttributeValue; … … 799 867 typedef struct { 800 868 [ref] drsuapi_DsReplicaObjectIdentifier *naming_context; 801 [charset(UTF 16),string] uint16*source_dsa_address;869 [charset(UTF8), string] uint8 *source_dsa_address; 802 870 drsuapi_DrsOptions options; 803 871 } drsuapi_DsReplicaDelRequest1; … … 1100 1168 /*****************/ 1101 1169 /* Function 0x10 */ 1170 typedef [v1_enum] enum { 1171 DRSUAPI_DC_INFO_CTR_1 = 1, 1172 DRSUAPI_DC_INFO_CTR_2 = 2, 1173 DRSUAPI_DC_INFO_CTR_3 = 3, 1174 DRSUAPI_DC_CONNECTION_CTR_01 = 0xFFFFFFFF 1175 } drsuapi_DsGetDCInfoCtrLevels; 1176 1102 1177 typedef struct { 1103 1178 [charset(UTF16),string] uint16 *domain_name; /* netbios or dns */ 1104 int32level; /* specifies the switch level for the request */1179 drsuapi_DsGetDCInfoCtrLevels level; /* specifies the switch level for the request */ 1105 1180 } drsuapi_DsGetDCInfoRequest1; 1106 1181 1107 typedef [switch_type( int32)] union {1182 typedef [switch_type(uint32)] union { 1108 1183 [case(1)] drsuapi_DsGetDCInfoRequest1 req1; 1109 1184 } drsuapi_DsGetDCInfoRequest; … … 1197 1272 } drsuapi_DsGetDCConnectionCtr01; 1198 1273 1199 typedef [v1_enum] enum { 1200 DRSUAPI_DC_INFO_CTR_1 = 1, 1201 DRSUAPI_DC_INFO_CTR_2 = 2, 1202 DRSUAPI_DC_INFO_CTR_3 = 3, 1203 DRSUAPI_DC_CONNECTION_CTR_01 = -1 1204 } drsuapi_DsGetDCInfoCtrLevels; 1205 1206 typedef [switch_type(int32)] union { 1274 typedef [switch_type(drsuapi_DsGetDCInfoCtrLevels)] union { 1207 1275 [case(DRSUAPI_DC_INFO_CTR_1)] drsuapi_DsGetDCInfoCtr1 ctr1; 1208 1276 [case(DRSUAPI_DC_INFO_CTR_2)] drsuapi_DsGetDCInfoCtr2 ctr2; … … 1213 1281 WERROR drsuapi_DsGetDomainControllerInfo( 1214 1282 [in] policy_handle *bind_handle, 1215 [in] int32 level,1283 [in] uint32 level, 1216 1284 [in,ref,switch_is(level)] drsuapi_DsGetDCInfoRequest *req, 1217 [out,ref] int32*level_out,1285 [out,ref] drsuapi_DsGetDCInfoCtrLevels *level_out, 1218 1286 [out,ref,switch_is(*level_out)] drsuapi_DsGetDCInfoCtr *ctr 1219 1287 );
Note:
See TracChangeset
for help on using the changeset viewer.
