2 * COPYRIGHT: See COPYING in the top level directory
4 * FILE: reactos/dll/win32/netapi32/dssetup.c
5 * PURPOSE: Directory Service Setup interface code
6 * PROGRAMMERS: Eric Kohl
9 /* INCLUDES ******************************************************************/
14 #include "dssetup_c.h"
16 WINE_DEFAULT_DEBUG_CHANNEL(netapi32
);
18 /* FUNCTIONS *****************************************************************/
26 LPWSTR pszStringBinding
;
29 TRACE("DsSetupBind() called\n");
33 status
= RpcStringBindingComposeW(NULL
,
41 TRACE("RpcStringBindingCompose returned 0x%x\n", status
);
45 /* Set the binding handle that will be used to bind to the server. */
46 status
= RpcBindingFromStringBindingW(pszStringBinding
,
50 TRACE("RpcBindingFromStringBinding returned 0x%x\n", status
);
53 status
= RpcStringFreeW(&pszStringBinding
);
56 TRACE("RpcStringFree returned 0x%x\n", status
);
70 TRACE("DsSetupUnbind()\n");
72 status
= RpcBindingFree(&hBinding
);
75 TRACE("RpcBindingFree returned 0x%x\n", status
);
82 DsRoleGetPrimaryDomainInformation(
84 DSROLE_PRIMARY_DOMAIN_INFO_LEVEL InfoLevel
,
87 handle_t hBinding
= NULL
;
88 NET_API_STATUS status
;
90 TRACE("DsRoleGetPrimaryDomainInformation(%p, %d, %p)\n",
91 lpServer
, InfoLevel
, Buffer
);
93 /* Check some input parameters */
96 return ERROR_INVALID_PARAMETER
;
98 if ((InfoLevel
< DsRolePrimaryDomainInfoBasic
) || (InfoLevel
> DsRoleOperationState
))
99 return ERROR_INVALID_PARAMETER
;
103 status
= DsSetupBind((LPWSTR
)lpServer
, &hBinding
);
106 TRACE("DsSetupBind() failed (Status %lu\n)", status
);
112 status
= DsRolerGetPrimaryDomainInformation(hBinding
,
114 (PDSROLER_PRIMARY_DOMAIN_INFORMATION
*)Buffer
);
116 RpcExcept(EXCEPTION_EXECUTE_HANDLER
)
118 status
= I_RpcMapWin32Status(RpcExceptionCode());
122 if (hBinding
!= NULL
)
123 DsSetupUnbind(hBinding
);