mirror of
https://github.com/reactos/reactos.git
synced 2024-07-05 20:25:17 +00:00
70 lines
1.8 KiB
C
70 lines
1.8 KiB
C
/*
|
|
* COPYRIGHT: See COPYING in the top level directory
|
|
* PROJECT: ReactOS Services
|
|
* FILE: base/services/wkssvc/domain.c
|
|
* PURPOSE: Workstation service
|
|
* PROGRAMMER: Eric Kohl
|
|
*/
|
|
|
|
/* INCLUDES *****************************************************************/
|
|
|
|
#include "precomp.h"
|
|
|
|
WINE_DEFAULT_DEBUG_CHANNEL(wkssvc);
|
|
|
|
/* FUNCTIONS *****************************************************************/
|
|
|
|
static
|
|
NET_API_STATUS
|
|
NetpSetPrimaryDomain(
|
|
_In_ LPCWSTR lpWorkgroupName)
|
|
{
|
|
LSA_OBJECT_ATTRIBUTES ObjectAttributes;
|
|
POLICY_PRIMARY_DOMAIN_INFO PrimaryDomainInfo;
|
|
LSA_HANDLE PolicyHandle = NULL;
|
|
NTSTATUS Status;
|
|
|
|
ZeroMemory(&ObjectAttributes, sizeof(LSA_OBJECT_ATTRIBUTES));
|
|
ObjectAttributes.Length = sizeof(LSA_OBJECT_ATTRIBUTES);
|
|
|
|
Status = LsaOpenPolicy(NULL,
|
|
&ObjectAttributes,
|
|
POLICY_TRUST_ADMIN,
|
|
&PolicyHandle);
|
|
if (!LSA_SUCCESS(Status))
|
|
return LsaNtStatusToWinError(Status);
|
|
|
|
RtlInitUnicodeString(&PrimaryDomainInfo.Name,
|
|
lpWorkgroupName);
|
|
PrimaryDomainInfo.Sid = NULL;
|
|
|
|
Status = LsaSetInformationPolicy(PolicyHandle,
|
|
PolicyPrimaryDomainInformation,
|
|
&PrimaryDomainInfo);
|
|
|
|
LsaClose(PolicyHandle);
|
|
|
|
return LsaNtStatusToWinError(Status);
|
|
}
|
|
|
|
|
|
NET_API_STATUS
|
|
NetpJoinWorkgroup(
|
|
_In_ LPCWSTR lpWorkgroupName)
|
|
{
|
|
NET_API_STATUS status;
|
|
|
|
FIXME("NetpJoinWorkgroup(%S)\n", lpWorkgroupName);
|
|
|
|
status = NetpSetPrimaryDomain(lpWorkgroupName);
|
|
if (status != NERR_Success)
|
|
{
|
|
ERR("NetpSetPrimaryDomain failed (Status %lu)\n", status);
|
|
return status;
|
|
}
|
|
|
|
return NERR_Success;
|
|
}
|
|
|
|
/* EOF */
|