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
);
85 TRACE("DsRoleFreeMemory(%p)\n", Buffer
);
86 HeapFree(GetProcessHeap(), 0, Buffer
);
92 DsRoleGetPrimaryDomainInformation(
94 DSROLE_PRIMARY_DOMAIN_INFO_LEVEL InfoLevel
,
97 handle_t hBinding
= NULL
;
98 NET_API_STATUS status
;
100 TRACE("DsRoleGetPrimaryDomainInformation(%p, %d, %p)\n",
101 lpServer
, InfoLevel
, Buffer
);
103 /* Check some input parameters */
106 return ERROR_INVALID_PARAMETER
;
108 if ((InfoLevel
< DsRolePrimaryDomainInfoBasic
) || (InfoLevel
> DsRoleOperationState
))
109 return ERROR_INVALID_PARAMETER
;
113 status
= DsSetupBind((LPWSTR
)lpServer
, &hBinding
);
116 TRACE("DsSetupBind() failed (Status %lu\n)", status
);
122 status
= DsRolerGetPrimaryDomainInformation(hBinding
,
124 (PDSROLER_PRIMARY_DOMAIN_INFORMATION
*)Buffer
);
126 RpcExcept(EXCEPTION_EXECUTE_HANDLER
)
128 status
= I_RpcMapWin32Status(RpcExceptionCode());
132 if (hBinding
!= NULL
)
133 DsSetupUnbind(hBinding
);