[todo] WERROR drsuapi_DsGetMemberships(
[in] policy_handle *bind_handle,
- [in,out] int32 level,
- [in] [switch_is(level)] drsuapi_DsGetMembershipsRequest req,
- [out] [switch_is(level)] drsuapi_DsGetMembershipsCtr ctr
+ [in] int32 level,
+ [in,ref] [switch_is(level)] drsuapi_DsGetMembershipsRequest *req,
+ [out,ref] int32 *level_out,
+ [out,ref] [switch_is(*level_out)] drsuapi_DsGetMembershipsCtr *ctr
);
/*****************/
[todo] WERROR drsuapi_DsGetNT4ChangeLog(
[in] policy_handle *bind_handle,
- [in,out] uint32 level,
- [in] [switch_is(level)] drsuapi_DsGetNT4ChangeLogRequest req,
- [out] [switch_is(level)] drsuapi_DsGetNT4ChangeLogInfo info
+ [in] uint32 level,
+ [in,ref] [switch_is(level)] drsuapi_DsGetNT4ChangeLogRequest *req,
+ [out,ref] uint32 *level_out,
+ [out,ref] [switch_is(*level_out)] drsuapi_DsGetNT4ChangeLogInfo *info
);
/*****************/
WERROR drsuapi_DsRemoveDSServer(
[in] policy_handle *bind_handle,
- [in,out] int32 level,
- [in,switch_is(level)] drsuapi_DsRemoveDSServerRequest req,
- [out,switch_is(level)] drsuapi_DsRemoveDSServerResult res
+ [in] int32 level,
+ [in,ref,switch_is(level)] drsuapi_DsRemoveDSServerRequest *req,
+ [out,ref] int32 *level_out,
+ [out,ref,switch_is(*level_out)] drsuapi_DsRemoveDSServerResult *res
);
/*****************/
[size_is(count)] drsuapi_DsGetDCInfo2 *array;
} drsuapi_DsGetDCInfoCtr2;
+ typedef struct {
+ [charset(UTF16),string] uint16 *netbios_name;
+ [charset(UTF16),string] uint16 *dns_name;
+ [charset(UTF16),string] uint16 *site_name;
+ [charset(UTF16),string] uint16 *site_dn;
+ [charset(UTF16),string] uint16 *computer_dn;
+ [charset(UTF16),string] uint16 *server_dn;
+ [charset(UTF16),string] uint16 *ntds_dn;
+ uint32 is_pdc;
+ uint32 is_enabled;
+ uint32 is_gc;
+ uint32 is_rodc;
+ GUID site_guid;
+ GUID computer_guid;
+ GUID server_guid;
+ GUID ntds_guid;
+ } drsuapi_DsGetDCInfo3;
+
+ typedef struct {
+ [range(0,10000)] uint32 count;
+ [size_is(count)] drsuapi_DsGetDCInfo3 *array;
+ } drsuapi_DsGetDCInfoCtr3;
+
/*
* this represents an active connection to the
* Directory System Agent (DSA)
typedef [v1_enum] enum {
DRSUAPI_DC_INFO_CTR_1 = 1,
DRSUAPI_DC_INFO_CTR_2 = 2,
+ DRSUAPI_DC_INFO_CTR_3 = 3,
DRSUAPI_DC_CONNECTION_CTR_01 = -1
} drsuapi_DsGetDCInfoCtrLevels;
typedef [switch_type(int32)] union {
[case(DRSUAPI_DC_INFO_CTR_1)] drsuapi_DsGetDCInfoCtr1 ctr1;
[case(DRSUAPI_DC_INFO_CTR_2)] drsuapi_DsGetDCInfoCtr2 ctr2;
+ [case(DRSUAPI_DC_INFO_CTR_3)] drsuapi_DsGetDCInfoCtr3 ctr3;
[case(DRSUAPI_DC_CONNECTION_CTR_01)] drsuapi_DsGetDCConnectionCtr01 ctr01;
} drsuapi_DsGetDCInfoCtr;
[public] WERROR drsuapi_DsAddEntry(
[in] policy_handle *bind_handle,
- [in,out] int32 level,
- [in,switch_is(level)] drsuapi_DsAddEntryRequest req,
- [out,switch_is(level)] drsuapi_DsAddEntryCtr ctr
+ [in] int32 level,
+ [in,ref,switch_is(level)] drsuapi_DsAddEntryRequest *req,
+ [out,ref] int32 *level_out,
+ [out,ref,switch_is(*level_out)] drsuapi_DsAddEntryCtr *ctr
);
/*****************/
typedef [switch_type(drsuapi_DsReplicaOpType)] union {
[case(DRSUAPI_DS_REPLICA_OP_TYPE_SYNC)] drsuapi_DsReplicaSyncOptions sync;
[case(DRSUAPI_DS_REPLICA_OP_TYPE_ADD)] drsuapi_DsReplicaAddOptions add;
- [case(DRSUAPI_DS_REPLICA_OP_TYPE_DELETE)] drsuapi_DsReplicaDeleteOptions delete;
+ [case(DRSUAPI_DS_REPLICA_OP_TYPE_DELETE)] drsuapi_DsReplicaDeleteOptions op_delete;
[case(DRSUAPI_DS_REPLICA_OP_TYPE_MODIFY)] drsuapi_DsReplicaModifyOptions modify;
[case(DRSUAPI_DS_REPLICA_OP_TYPE_UPDATE_REFS)] drsuapi_DsReplicaUpdateRefsOptions update_refs;
[default] uint32 unknown;
WERROR drsuapi_DsReplicaGetInfo(
[in] policy_handle *bind_handle,
[in] drsuapi_DsReplicaGetInfoLevel level,
- [in,switch_is(level)] drsuapi_DsReplicaGetInfoRequest req,
- [out] drsuapi_DsReplicaInfoType info_type,
- [out,switch_is(info_type)] drsuapi_DsReplicaInfo info
+ [in,ref,switch_is(level)] drsuapi_DsReplicaGetInfoRequest *req,
+ [out,ref] drsuapi_DsReplicaInfoType *info_type,
+ [out,ref,switch_is(*info_type)] drsuapi_DsReplicaInfo *info
);
/*****************/
WERROR drsuapi_DsGetMemberships2(
[in] policy_handle *bind_handle,
- [in,out] int32 level,
- [in] [switch_is(level)] drsuapi_DsGetMemberships2Request req,
- [out] [switch_is(level)] drsuapi_DsGetMemberships2Ctr ctr
+ [in] int32 level,
+ [in,ref] [switch_is(level)] drsuapi_DsGetMemberships2Request *req,
+ [out,ref] int32 *level_out,
+ [out,ref] [switch_is(*level_out)] drsuapi_DsGetMemberships2Ctr *ctr
);
-
/*****************/
/* Function 0x16 */
[todo] WERROR DRSUAPI_REPLICA_VERIFY_OBJECTS();
WERROR drsuapi_QuerySitesByCost(
[in] policy_handle *bind_handle,
[in] int32 level,
- [in] [switch_is(level)] drsuapi_QuerySitesByCostRequest req,
- [out] int32 level_out,
- [out] [switch_is(level_out)] drsuapi_QuerySitesByCostCtr ctr
+ [in,ref] [switch_is(level)] drsuapi_QuerySitesByCostRequest *req,
+ [out,ref] int32 *level_out,
+ [out,ref] [switch_is(*level_out)] drsuapi_QuerySitesByCostCtr *ctr
);
}