3 * Copyright (C) 2015 ReactOS Team
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation; either version 2 of the License, or
8 * (at your option) any later version.
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
15 * You should have received a copy of the GNU General Public License along
16 * with this program; if not, write to the Free Software Foundation, Inc.,
17 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
20 * COPYRIGHT: See COPYING in the top level directory
21 * PROJECT: ReactOS Services
22 * FILE: base/services/wkssvc/rpcserver.c
23 * PURPOSE: Workstation service
24 * PROGRAMMER: Eric Kohl
27 /* INCLUDES *****************************************************************/
33 WINE_DEFAULT_DEBUG_CHANNEL(wkssvc
);
35 /* FUNCTIONS *****************************************************************/
44 Status
= RpcServerUseProtseqEpW(L
"ncacn_np", 20, L
"\\pipe\\wkssvc", NULL
);
45 if (Status
!= RPC_S_OK
)
47 ERR("RpcServerUseProtseqEpW() failed (Status %lx)\n", Status
);
51 Status
= RpcServerRegisterIf(wkssvc_v1_0_s_ifspec
, NULL
, NULL
);
52 if (Status
!= RPC_S_OK
)
54 ERR("RpcServerRegisterIf() failed (Status %lx)\n", Status
);
58 Status
= RpcServerListen(1, RPC_C_LISTEN_MAX_CALLS_DEFAULT
, FALSE
);
59 if (Status
!= RPC_S_OK
)
61 ERR("RpcServerListen() failed (Status %lx)\n", Status
);
68 void __RPC_FAR
* __RPC_USER
midl_user_allocate(SIZE_T len
)
70 return HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY
, len
);
74 void __RPC_USER
midl_user_free(void __RPC_FAR
* ptr
)
76 HeapFree(GetProcessHeap(), 0, ptr
);
84 WKSSVC_IDENTIFY_HANDLE ServerName
,
86 LPWKSTA_INFO WkstaInfo
)
88 TRACE("NetrWkstaGetInfo level %lu\n", Level
);
98 WKSSVC_IDENTIFY_HANDLE ServerName
,
100 LPWKSTA_INFO WkstaInfo
,
101 unsigned long *ErrorParameter
)
112 WKSSVC_IDENTIFY_HANDLE ServerName
,
113 LPWKSTA_USER_ENUM_STRUCT UserInfo
,
114 unsigned long PreferredMaximumLength
,
115 unsigned long *TotalEntries
,
116 unsigned long *ResumeHandle
)
126 NetrWkstaUserGetInfo(
127 WKSSVC_IDENTIFY_HANDLE Unused
,
129 LPWKSTA_USER_INFO UserInfo
)
131 FIXME("(%s, %d, %p)\n", debugstr_w(Unused
), Level
, UserInfo
);
141 NetrWkstaUserSetInfo (
142 WKSSVC_IDENTIFY_HANDLE Unused
,
144 LPWKSTA_USER_INFO UserInfo
,
145 unsigned long *ErrorParameter
)
155 NetrWkstaTransportEnum(
156 WKSSVC_IDENTIFY_HANDLE ServerName
,
157 LPWKSTA_TRANSPORT_ENUM_STRUCT TransportInfo
,
158 unsigned long PreferredMaximumLength
,
159 unsigned long* TotalEntries
,
160 unsigned long *ResumeHandle
)
170 NetrWkstaTransportAdd(
171 WKSSVC_IDENTIFY_HANDLE ServerName
,
173 LPWKSTA_TRANSPORT_INFO_0 TransportInfo
,
174 unsigned long *ErrorParameter
)
184 NetrWkstaTransportDel(
185 WKSSVC_IDENTIFY_HANDLE ServerName
,
186 wchar_t *TransportName
,
187 unsigned long ForceLevel
)
198 WKSSVC_IMPERSONATE_HANDLE ServerName
,
200 LPUSE_INFO InfoStruct
,
201 unsigned long *ErrorParameter
)
212 WKSSVC_IMPERSONATE_HANDLE ServerName
,
215 LPUSE_INFO InfoStruct
)
226 WKSSVC_IMPERSONATE_HANDLE ServerName
,
228 unsigned long ForceLevel
)
239 WKSSVC_IDENTIFY_HANDLE ServerName
,
240 LPUSE_ENUM_STRUCT InfoStruct
,
241 unsigned long PreferredMaximumLength
,
242 unsigned long *TotalEntries
,
243 unsigned long *ResumeHandle
)
253 Opnum12NotUsedOnWire(void)
263 NetrWorkstationStatisticsGet(
264 WKSSVC_IDENTIFY_HANDLE ServerName
,
265 wchar_t *ServiceName
,
267 unsigned long Options
,
268 LPSTAT_WORKSTATION_0
*Buffer
)
278 Opnum14NotUsedOnWire(void)
288 Opnum15NotUsedOnWire(void)
298 Opnum16NotUsedOnWire(void)
308 Opnum17NotUsedOnWire(void)
318 Opnum18NotUsedOnWire(void)
328 Opnum19NotUsedOnWire(void)
338 NetrGetJoinInformation(
339 WKSSVC_IMPERSONATE_HANDLE ServerName
,
340 wchar_t **NameBuffer
,
341 PNETSETUP_JOIN_STATUS BufferType
)
343 TRACE("NetrGetJoinInformation()\n");
346 *BufferType
= NetSetupUnjoined
;
355 Opnum21NotUsedOnWire(void)
366 handle_t RpcBindingHandle
,
368 wchar_t *DomainNameParam
,
369 wchar_t *MachineAccountOU
,
370 wchar_t *AccountName
,
371 PJOINPR_ENCRYPTED_USER_PASSWORD Password
,
372 unsigned long Options
)
383 handle_t RpcBindingHandle
,
385 wchar_t *AccountName
,
386 PJOINPR_ENCRYPTED_USER_PASSWORD Password
,
387 unsigned long Options
)
397 NetrRenameMachineInDomain2(
398 handle_t RpcBindingHandle
,
400 wchar_t *MachineName
,
401 wchar_t *AccountName
,
402 PJOINPR_ENCRYPTED_USER_PASSWORD Password
,
403 unsigned long Options
)
414 handle_t RpcBindingHandle
,
416 wchar_t *NameToValidate
,
417 wchar_t *AccountName
,
418 PJOINPR_ENCRYPTED_USER_PASSWORD Password
,
419 NETSETUP_NAME_TYPE NameType
)
430 handle_t RpcBindingHandle
,
432 wchar_t *DomainNameParam
,
433 wchar_t *AccountName
,
434 PJOINPR_ENCRYPTED_USER_PASSWORD Password
,
435 unsigned long* OUCount
,
446 NetrAddAlternateComputerName(
447 handle_t RpcBindingHandle
,
449 wchar_t *AlternateName
,
450 wchar_t *DomainAccount
,
451 PJOINPR_ENCRYPTED_USER_PASSWORD EncryptedPassword
,
452 unsigned long Reserved
)
462 NetrRemoveAlternateComputerName(
463 handle_t RpcBindingHandle
,
465 wchar_t *AlternateName
,
466 wchar_t *DomainAccount
,
467 PJOINPR_ENCRYPTED_USER_PASSWORD EncryptedPassword
,
468 unsigned long Reserved
)
478 NetrSetPrimaryComputerName(
479 handle_t RpcBindingHandle
,
481 wchar_t *PrimaryName
,
482 wchar_t *DomainAccount
,
483 PJOINPR_ENCRYPTED_USER_PASSWORD EncryptedPassword
,
484 unsigned long Reserved
)
494 NetrEnumerateComputerNames(
495 WKSSVC_IMPERSONATE_HANDLE ServerName
,
496 NET_COMPUTER_NAME_TYPE NameType
,
497 unsigned long Reserved
,
498 PNET_COMPUTER_NAME_ARRAY
*ComputerNames
)