1 /*
2 * PROJECT: ReactOS NetLogon Service
3 * LICENSE: GPL-2.0+ (https://spdx.org/licenses/GPL-2.0+)
4 * PURPOSE: NetLogon service RPC server
5 * COPYRIGHT: Eric Kohl 2019 <eric.kohl@reactos.org>
6 */
7
8 /* INCLUDES *****************************************************************/
9
10 #include "precomp.h"
11
12 //#include "lmerr.h"
13
14 WINE_DEFAULT_DEBUG_CHANNEL(netlogon);
15
16 /* FUNCTIONS *****************************************************************/
17
18 DWORD
19 WINAPI
RpcThreadRoutine(LPVOID lpParameter)20 RpcThreadRoutine(
21 LPVOID lpParameter)
22 {
23 RPC_STATUS Status;
24
25 Status = RpcServerUseProtseqEpW(L"ncacn_np", 20, L"\\pipe\\netlogon", NULL);
26 if (Status != RPC_S_OK)
27 {
28 ERR("RpcServerUseProtseqEpW() failed (Status %lx)\n", Status);
29 return 0;
30 }
31
32 Status = RpcServerRegisterIf(logon_v1_0_s_ifspec, NULL, NULL);
33 if (Status != RPC_S_OK)
34 {
35 ERR("RpcServerRegisterIf() failed (Status %lx)\n", Status);
36 return 0;
37 }
38
39 Status = RpcServerListen(1, RPC_C_LISTEN_MAX_CALLS_DEFAULT, FALSE);
40 if (Status != RPC_S_OK)
41 {
42 ERR("RpcServerListen() failed (Status %lx)\n", Status);
43 }
44
45 return 0;
46 }
47
48
midl_user_allocate(SIZE_T len)49 void __RPC_FAR * __RPC_USER midl_user_allocate(SIZE_T len)
50 {
51 return HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, len);
52 }
53
54
midl_user_free(void __RPC_FAR * ptr)55 void __RPC_USER midl_user_free(void __RPC_FAR * ptr)
56 {
57 HeapFree(GetProcessHeap(), 0, ptr);
58 }
59
60
61 /* Function 0 */
62 NET_API_STATUS
63 __stdcall
NetrLogonUasLogon(_In_opt_ LOGONSRV_HANDLE ServerName,_In_ wchar_t * UserName,_In_ wchar_t * Workstation,_Out_ PNETLOGON_VALIDATION_UAS_INFO * ValidationInformation)64 NetrLogonUasLogon(
65 _In_opt_ LOGONSRV_HANDLE ServerName,
66 _In_ wchar_t *UserName,
67 _In_ wchar_t *Workstation,
68 _Out_ PNETLOGON_VALIDATION_UAS_INFO *ValidationInformation)
69 {
70 UNIMPLEMENTED;
71 return 0;
72 }
73
74
75 /* Function 1 */
76 NET_API_STATUS
77 __stdcall
NetrLogonUasLogoff(_In_opt_ LOGONSRV_HANDLE ServerName,_In_ wchar_t * UserName,_In_ wchar_t * Workstation,_Out_ PNETLOGON_LOGOFF_UAS_INFO LogoffInformation)78 NetrLogonUasLogoff(
79 _In_opt_ LOGONSRV_HANDLE ServerName,
80 _In_ wchar_t *UserName,
81 _In_ wchar_t *Workstation,
82 _Out_ PNETLOGON_LOGOFF_UAS_INFO LogoffInformation)
83 {
84 UNIMPLEMENTED;
85 return 0;
86 }
87
88
89 /* Function 2 */
90 NTSTATUS
91 __stdcall
NetrLogonSamLogon(_In_opt_ LOGONSRV_HANDLE LogonServer,_In_opt_ wchar_t * ComputerName,_In_opt_ PNETLOGON_AUTHENTICATOR Authenticator,_Inout_opt_ PNETLOGON_AUTHENTICATOR ReturnAuthenticator,_In_ NETLOGON_LOGON_INFO_CLASS LogonLevel,_In_ PNETLOGON_LEVEL LogonInformation,_In_ NETLOGON_VALIDATION_INFO_CLASS ValidationLevel,_Out_ PNETLOGON_VALIDATION ValidationInformation,_Out_ UCHAR * Authoritative)92 NetrLogonSamLogon(
93 _In_opt_ LOGONSRV_HANDLE LogonServer,
94 _In_opt_ wchar_t *ComputerName,
95 _In_opt_ PNETLOGON_AUTHENTICATOR Authenticator,
96 _Inout_opt_ PNETLOGON_AUTHENTICATOR ReturnAuthenticator,
97 _In_ NETLOGON_LOGON_INFO_CLASS LogonLevel,
98 _In_ PNETLOGON_LEVEL LogonInformation,
99 _In_ NETLOGON_VALIDATION_INFO_CLASS ValidationLevel,
100 _Out_ PNETLOGON_VALIDATION ValidationInformation,
101 _Out_ UCHAR *Authoritative)
102 {
103 UNIMPLEMENTED;
104 return 0;
105 }
106
107
108 /* Function 3 */
109 NTSTATUS
110 __stdcall
NetrLogonSamLogoff(_In_opt_ LOGONSRV_HANDLE LogonServer,_In_opt_ wchar_t * ComputerName,_In_opt_ PNETLOGON_AUTHENTICATOR Authenticator,_Inout_opt_ PNETLOGON_AUTHENTICATOR ReturnAuthenticator,_In_ NETLOGON_LOGON_INFO_CLASS LogonLevel,_In_ PNETLOGON_LEVEL LogonInformation)111 NetrLogonSamLogoff(
112 _In_opt_ LOGONSRV_HANDLE LogonServer,
113 _In_opt_ wchar_t *ComputerName,
114 _In_opt_ PNETLOGON_AUTHENTICATOR Authenticator,
115 _Inout_opt_ PNETLOGON_AUTHENTICATOR ReturnAuthenticator,
116 _In_ NETLOGON_LOGON_INFO_CLASS LogonLevel,
117 _In_ PNETLOGON_LEVEL LogonInformation)
118 {
119 UNIMPLEMENTED;
120 return 0;
121 }
122
123
124 /* Function 4 */
125 NTSTATUS
126 __stdcall
NetrServerReqChallenge(_In_opt_ LOGONSRV_HANDLE PrimaryName,_In_ wchar_t * ComputerName,_In_ PNETLOGON_CREDENTIAL ClientChallenge,_Out_ PNETLOGON_CREDENTIAL ServerChallenge)127 NetrServerReqChallenge(
128 _In_opt_ LOGONSRV_HANDLE PrimaryName,
129 _In_ wchar_t *ComputerName,
130 _In_ PNETLOGON_CREDENTIAL ClientChallenge,
131 _Out_ PNETLOGON_CREDENTIAL ServerChallenge)
132 {
133 UNIMPLEMENTED;
134 return 0;
135 }
136
137
138 /* Function 5 */
139 NTSTATUS
140 __stdcall
NetrServerAuthenticate(_In_opt_ LOGONSRV_HANDLE PrimaryName,_In_ wchar_t * AccountName,_In_ NETLOGON_SECURE_CHANNEL_TYPE SecureChannelType,_In_ wchar_t * ComputerName,_In_ PNETLOGON_CREDENTIAL ClientCredential,_Out_ PNETLOGON_CREDENTIAL ServerCredential)141 NetrServerAuthenticate(
142 _In_opt_ LOGONSRV_HANDLE PrimaryName,
143 _In_ wchar_t *AccountName,
144 _In_ NETLOGON_SECURE_CHANNEL_TYPE SecureChannelType,
145 _In_ wchar_t *ComputerName,
146 _In_ PNETLOGON_CREDENTIAL ClientCredential,
147 _Out_ PNETLOGON_CREDENTIAL ServerCredential)
148 {
149 UNIMPLEMENTED;
150 return 0;
151 }
152
153
154 /* Function 6 */
155 NTSTATUS
156 __stdcall
NetrServerPasswordSet(_In_opt_ LOGONSRV_HANDLE PrimaryName,_In_ wchar_t * AccountName,_In_ NETLOGON_SECURE_CHANNEL_TYPE SecureChannelType,_In_ wchar_t * ComputerName,_In_ PNETLOGON_AUTHENTICATOR Authenticator,_Out_ PNETLOGON_AUTHENTICATOR ReturnAuthenticator,_In_ PENCRYPTED_NT_OWF_PASSWORD UasNewPassword)157 NetrServerPasswordSet(
158 _In_opt_ LOGONSRV_HANDLE PrimaryName,
159 _In_ wchar_t *AccountName,
160 _In_ NETLOGON_SECURE_CHANNEL_TYPE SecureChannelType,
161 _In_ wchar_t *ComputerName,
162 _In_ PNETLOGON_AUTHENTICATOR Authenticator,
163 _Out_ PNETLOGON_AUTHENTICATOR ReturnAuthenticator,
164 _In_ PENCRYPTED_NT_OWF_PASSWORD UasNewPassword)
165 {
166 UNIMPLEMENTED;
167 return 0;
168 }
169
170
171 /* Function 7 */
172 NTSTATUS
173 __stdcall
NetrDatabaseDeltas(_In_ LOGONSRV_HANDLE PrimaryName,_In_ wchar_t * ComputerName,_In_ PNETLOGON_AUTHENTICATOR Authenticator,_Inout_ PNETLOGON_AUTHENTICATOR ReturnAuthenticator,_In_ DWORD DatabaseID,_Inout_ PNLPR_MODIFIED_COUNT DomainModifiedCount,_Out_ PNETLOGON_DELTA_ENUM_ARRAY * DeltaArray,_In_ DWORD PreferredMaximumLength)174 NetrDatabaseDeltas(
175 _In_ LOGONSRV_HANDLE PrimaryName,
176 _In_ wchar_t *ComputerName,
177 _In_ PNETLOGON_AUTHENTICATOR Authenticator,
178 _Inout_ PNETLOGON_AUTHENTICATOR ReturnAuthenticator,
179 _In_ DWORD DatabaseID,
180 _Inout_ PNLPR_MODIFIED_COUNT DomainModifiedCount,
181 _Out_ PNETLOGON_DELTA_ENUM_ARRAY *DeltaArray,
182 _In_ DWORD PreferredMaximumLength)
183 {
184 UNIMPLEMENTED;
185 return 0;
186 }
187
188
189 /* Function 8 */
190 NTSTATUS
191 __stdcall
NetrDatabaseSync(_In_ LOGONSRV_HANDLE PrimaryName,_In_ wchar_t * ComputerName,_In_ PNETLOGON_AUTHENTICATOR Authenticator,_Inout_ PNETLOGON_AUTHENTICATOR ReturnAuthenticator,_In_ DWORD DatabaseID,_Inout_ ULONG * SyncContext,_Out_ PNETLOGON_DELTA_ENUM_ARRAY * DeltaArray,_In_ DWORD PreferredMaximumLength)192 NetrDatabaseSync(
193 _In_ LOGONSRV_HANDLE PrimaryName,
194 _In_ wchar_t *ComputerName,
195 _In_ PNETLOGON_AUTHENTICATOR Authenticator,
196 _Inout_ PNETLOGON_AUTHENTICATOR ReturnAuthenticator,
197 _In_ DWORD DatabaseID,
198 _Inout_ ULONG *SyncContext,
199 _Out_ PNETLOGON_DELTA_ENUM_ARRAY *DeltaArray,
200 _In_ DWORD PreferredMaximumLength)
201 {
202 UNIMPLEMENTED;
203 return 0;
204 }
205
206
207 /* Function 9 */
208 NTSTATUS
209 __stdcall
NetrAccountDeltas(_In_opt_ LOGONSRV_HANDLE PrimaryName,_In_ wchar_t * ComputerName,_In_ PNETLOGON_AUTHENTICATOR Authenticator,_Inout_ PNETLOGON_AUTHENTICATOR ReturnAuthenticator,_In_ PUAS_INFO_0 RecordId,_In_ DWORD Count,_In_ DWORD Level,_Out_ UCHAR * Buffer,_In_ DWORD BufferSize,_Out_ ULONG * CountReturned,_Out_ ULONG * TotalEntries,_Out_ PUAS_INFO_0 NextRecordId)210 NetrAccountDeltas(
211 _In_opt_ LOGONSRV_HANDLE PrimaryName,
212 _In_ wchar_t * ComputerName,
213 _In_ PNETLOGON_AUTHENTICATOR Authenticator,
214 _Inout_ PNETLOGON_AUTHENTICATOR ReturnAuthenticator,
215 _In_ PUAS_INFO_0 RecordId,
216 _In_ DWORD Count,
217 _In_ DWORD Level,
218 _Out_ UCHAR *Buffer,
219 _In_ DWORD BufferSize,
220 _Out_ ULONG *CountReturned,
221 _Out_ ULONG *TotalEntries,
222 _Out_ PUAS_INFO_0 NextRecordId)
223 {
224 UNIMPLEMENTED;
225 return 0;
226 }
227
228
229 /* Function 10 */
230 NTSTATUS
231 __stdcall
NetrAccountSync(_In_opt_ LOGONSRV_HANDLE PrimaryName,_In_ wchar_t * ComputerName,_In_ PNETLOGON_AUTHENTICATOR Authenticator,_Inout_ PNETLOGON_AUTHENTICATOR ReturnAuthenticator,_In_ DWORD Reference,_In_ DWORD Level,_Out_ UCHAR * Buffer,_In_ DWORD BufferSize,_Out_ ULONG * CountReturned,_Out_ ULONG * TotalEntries,_Out_ ULONG * NextReference,_Out_ PUAS_INFO_0 LastRecordId)232 NetrAccountSync(
233 _In_opt_ LOGONSRV_HANDLE PrimaryName,
234 _In_ wchar_t *ComputerName,
235 _In_ PNETLOGON_AUTHENTICATOR Authenticator,
236 _Inout_ PNETLOGON_AUTHENTICATOR ReturnAuthenticator,
237 _In_ DWORD Reference,
238 _In_ DWORD Level,
239 _Out_ UCHAR *Buffer,
240 _In_ DWORD BufferSize,
241 _Out_ ULONG *CountReturned,
242 _Out_ ULONG *TotalEntries,
243 _Out_ ULONG *NextReference,
244 _Out_ PUAS_INFO_0 LastRecordId)
245 {
246 UNIMPLEMENTED;
247 return 0;
248 }
249
250
251 /* Function 11 */
252 NET_API_STATUS
253 __stdcall
NetrGetDCName(_In_ LOGONSRV_HANDLE ServerName,_In_opt_ wchar_t * DomainName,_Out_ wchar_t ** Buffer)254 NetrGetDCName(
255 _In_ LOGONSRV_HANDLE ServerName,
256 _In_opt_ wchar_t *DomainName,
257 _Out_ wchar_t **Buffer)
258 {
259 UNIMPLEMENTED;
260 return 0;
261 }
262
263
264 /* Function 12 */
265 NET_API_STATUS
266 __stdcall
NetrLogonControl(_In_opt_ LOGONSRV_HANDLE ServerName,_In_ DWORD FunctionCode,_In_ DWORD QueryLevel,_Out_ PNETLOGON_CONTROL_QUERY_INFORMATION Buffer)267 NetrLogonControl(
268 _In_opt_ LOGONSRV_HANDLE ServerName,
269 _In_ DWORD FunctionCode,
270 _In_ DWORD QueryLevel,
271 _Out_ PNETLOGON_CONTROL_QUERY_INFORMATION Buffer)
272 {
273 UNIMPLEMENTED;
274 return 0;
275 }
276
277
278 /* Function 13 */
279 NET_API_STATUS
280 __stdcall
NetrGetAnyDCName(_In_opt_ LOGONSRV_HANDLE ServerName,_In_opt_ wchar_t * DomainName,_Out_ wchar_t ** Buffer)281 NetrGetAnyDCName(
282 _In_opt_ LOGONSRV_HANDLE ServerName,
283 _In_opt_ wchar_t *DomainName,
284 _Out_ wchar_t **Buffer)
285 {
286 UNIMPLEMENTED;
287 return 0;
288 }
289
290
291 /* Function 14 */
292 NET_API_STATUS
293 __stdcall
NetrLogonControl2(_In_opt_ LOGONSRV_HANDLE ServerName,_In_ DWORD FunctionCode,_In_ DWORD QueryLevel,_In_ PNETLOGON_CONTROL_DATA_INFORMATION Data,_Out_ PNETLOGON_CONTROL_QUERY_INFORMATION Buffer)294 NetrLogonControl2(
295 _In_opt_ LOGONSRV_HANDLE ServerName,
296 _In_ DWORD FunctionCode,
297 _In_ DWORD QueryLevel,
298 _In_ PNETLOGON_CONTROL_DATA_INFORMATION Data,
299 _Out_ PNETLOGON_CONTROL_QUERY_INFORMATION Buffer)
300 {
301 UNIMPLEMENTED;
302 return 0;
303 }
304
305
306 /* Function 15 */
307 NTSTATUS
308 __stdcall
NetrServerAuthenticate2(_In_opt_ LOGONSRV_HANDLE PrimaryName,_In_ wchar_t * AccountName,_In_ NETLOGON_SECURE_CHANNEL_TYPE SecureChannelType,_In_ wchar_t * ComputerName,_In_ PNETLOGON_CREDENTIAL ClientCredential,_Out_ PNETLOGON_CREDENTIAL ServerCredential,_Inout_ ULONG * NegotiateFlags)309 NetrServerAuthenticate2(
310 _In_opt_ LOGONSRV_HANDLE PrimaryName,
311 _In_ wchar_t *AccountName,
312 _In_ NETLOGON_SECURE_CHANNEL_TYPE SecureChannelType,
313 _In_ wchar_t *ComputerName,
314 _In_ PNETLOGON_CREDENTIAL ClientCredential,
315 _Out_ PNETLOGON_CREDENTIAL ServerCredential,
316 _Inout_ ULONG *NegotiateFlags)
317 {
318 UNIMPLEMENTED;
319 return 0;
320 }
321
322
323 /* Function 16 */
324 NTSTATUS
325 __stdcall
NetrDatabaseSync2(_In_ LOGONSRV_HANDLE PrimaryName,_In_ wchar_t * ComputerName,_In_ PNETLOGON_AUTHENTICATOR Authenticator,_Inout_ PNETLOGON_AUTHENTICATOR ReturnAuthenticator,_In_ DWORD DatabaseID,_In_ SYNC_STATE RestartState,_Inout_ ULONG * SyncContext,_Out_ PNETLOGON_DELTA_ENUM_ARRAY * DeltaArray,_In_ DWORD PreferredMaximumLength)326 NetrDatabaseSync2(
327 _In_ LOGONSRV_HANDLE PrimaryName,
328 _In_ wchar_t *ComputerName,
329 _In_ PNETLOGON_AUTHENTICATOR Authenticator,
330 _Inout_ PNETLOGON_AUTHENTICATOR ReturnAuthenticator,
331 _In_ DWORD DatabaseID,
332 _In_ SYNC_STATE RestartState,
333 _Inout_ ULONG *SyncContext,
334 _Out_ PNETLOGON_DELTA_ENUM_ARRAY *DeltaArray,
335 _In_ DWORD PreferredMaximumLength)
336 {
337 UNIMPLEMENTED;
338 return 0;
339 }
340
341
342 /* Function 17 */
343 NTSTATUS
344 __stdcall
NetrDatabaseRedo(_In_ LOGONSRV_HANDLE PrimaryName,_In_ wchar_t * ComputerName,_In_ PNETLOGON_AUTHENTICATOR Authenticator,_Inout_ PNETLOGON_AUTHENTICATOR ReturnAuthenticator,_In_ UCHAR * ChangeLogEntry,_In_ DWORD ChangeLogEntrySize,_Out_ PNETLOGON_DELTA_ENUM_ARRAY * DeltaArray)345 NetrDatabaseRedo(
346 _In_ LOGONSRV_HANDLE PrimaryName,
347 _In_ wchar_t *ComputerName,
348 _In_ PNETLOGON_AUTHENTICATOR Authenticator,
349 _Inout_ PNETLOGON_AUTHENTICATOR ReturnAuthenticator,
350 _In_ UCHAR *ChangeLogEntry,
351 _In_ DWORD ChangeLogEntrySize,
352 _Out_ PNETLOGON_DELTA_ENUM_ARRAY *DeltaArray)
353 {
354 UNIMPLEMENTED;
355 return 0;
356 }
357
358
359 /* Function 18 */
360 NET_API_STATUS
361 __stdcall
NetrLogonControl2Ex(_In_opt_ LOGONSRV_HANDLE ServerName,_In_ DWORD FunctionCode,_In_ DWORD QueryLevel,_In_ PNETLOGON_CONTROL_DATA_INFORMATION Data,_Out_ PNETLOGON_CONTROL_QUERY_INFORMATION Buffer)362 NetrLogonControl2Ex(
363 _In_opt_ LOGONSRV_HANDLE ServerName,
364 _In_ DWORD FunctionCode,
365 _In_ DWORD QueryLevel,
366 _In_ PNETLOGON_CONTROL_DATA_INFORMATION Data,
367 _Out_ PNETLOGON_CONTROL_QUERY_INFORMATION Buffer)
368 {
369 UNIMPLEMENTED;
370 return 0;
371 }
372
373
374 /* Function 19 */
375 NTSTATUS
376 __stdcall
NetrEnumerateTrustedDomains(_In_opt_ LOGONSRV_HANDLE ServerName,_Out_ PDOMAIN_NAME_BUFFER DomainNameBuffer)377 NetrEnumerateTrustedDomains(
378 _In_opt_ LOGONSRV_HANDLE ServerName,
379 _Out_ PDOMAIN_NAME_BUFFER DomainNameBuffer)
380 {
381 UNIMPLEMENTED;
382 return 0;
383 }
384
385
386 /* Function 20 */
387 NET_API_STATUS
388 __stdcall
DsrGetDcName(_In_opt_ LOGONSRV_HANDLE ComputerName,_In_opt_ wchar_t * DomainName,_In_opt_ GUID * DomainGuid,_In_opt_ GUID * SiteGuid,_In_ ULONG Flags,_Out_ PDOMAIN_CONTROLLER_INFOW * DomainControllerInfo)389 DsrGetDcName(
390 _In_opt_ LOGONSRV_HANDLE ComputerName,
391 _In_opt_ wchar_t *DomainName,
392 _In_opt_ GUID *DomainGuid,
393 _In_opt_ GUID *SiteGuid,
394 _In_ ULONG Flags,
395 _Out_ PDOMAIN_CONTROLLER_INFOW *DomainControllerInfo)
396 {
397 UNIMPLEMENTED;
398 return 0;
399 }
400
401
402 /* Function 21 */
403 NTSTATUS
404 __stdcall
NetrLogonGetCapabilities(_In_ LOGONSRV_HANDLE ServerName,_In_opt_ wchar_t * ComputerName,_In_ PNETLOGON_AUTHENTICATOR Authenticator,_Inout_ PNETLOGON_AUTHENTICATOR ReturnAuthenticator,_In_ DWORD QueryLevel,_Out_ PNETLOGON_CAPABILITIES ServerCapabilities)405 NetrLogonGetCapabilities(
406 _In_ LOGONSRV_HANDLE ServerName,
407 _In_opt_ wchar_t *ComputerName,
408 _In_ PNETLOGON_AUTHENTICATOR Authenticator,
409 _Inout_ PNETLOGON_AUTHENTICATOR ReturnAuthenticator,
410 _In_ DWORD QueryLevel,
411 _Out_ PNETLOGON_CAPABILITIES ServerCapabilities)
412 {
413 UNIMPLEMENTED;
414 return 0;
415 }
416
417
418 /* Function 22 */
419 NTSTATUS
420 __stdcall
NetrLogonSetServiceBits(_In_opt_ LOGONSRV_HANDLE ServerName,_In_ DWORD ServiceBitsOfInterest,_In_ DWORD ServiceBits)421 NetrLogonSetServiceBits(
422 _In_opt_ LOGONSRV_HANDLE ServerName,
423 _In_ DWORD ServiceBitsOfInterest,
424 _In_ DWORD ServiceBits)
425 {
426 UNIMPLEMENTED;
427 return 0;
428 }
429
430
431 /* Function 23 */
432 NET_API_STATUS
433 __stdcall
NetrLogonGetTrustRid(_In_opt_ LOGONSRV_HANDLE ServerName,_In_opt_ wchar_t * DomainName,_Out_ ULONG * Rid)434 NetrLogonGetTrustRid(
435 _In_opt_ LOGONSRV_HANDLE ServerName,
436 _In_opt_ wchar_t *DomainName,
437 _Out_ ULONG *Rid)
438 {
439 UNIMPLEMENTED;
440 return 0;
441 }
442
443
444 /* Function 24 */
445 NET_API_STATUS
446 __stdcall
NetrLogonComputeServerDigest(_In_opt_ LOGONSRV_HANDLE ServerName,_In_ ULONG Rid,_In_ UCHAR * Message,_In_ ULONG MessageSize,_Out_ CHAR NewMessageDigest[16],_Out_ CHAR OldMessageDigest[16])447 NetrLogonComputeServerDigest(
448 _In_opt_ LOGONSRV_HANDLE ServerName,
449 _In_ ULONG Rid,
450 _In_ UCHAR *Message,
451 _In_ ULONG MessageSize,
452 _Out_ CHAR NewMessageDigest[16],
453 _Out_ CHAR OldMessageDigest[16])
454 {
455 UNIMPLEMENTED;
456 return 0;
457 }
458
459
460 /* Function 25 */
461 NET_API_STATUS
462 __stdcall
NetrLogonComputeClientDigest(_In_opt_ LOGONSRV_HANDLE ServerName,_In_opt_ wchar_t * DomainName,_In_ UCHAR * Message,_In_ ULONG MessageSize,_Out_ CHAR NewMessageDigest[16],_Out_ CHAR OldMessageDigest[16])463 NetrLogonComputeClientDigest(
464 _In_opt_ LOGONSRV_HANDLE ServerName,
465 _In_opt_ wchar_t *DomainName,
466 _In_ UCHAR *Message,
467 _In_ ULONG MessageSize,
468 _Out_ CHAR NewMessageDigest[16],
469 _Out_ CHAR OldMessageDigest[16])
470 {
471 UNIMPLEMENTED;
472 return 0;
473 }
474
475
476 /* Function 26 */
477 NTSTATUS
478 __stdcall
NetrServerAuthenticate3(_In_opt_ LOGONSRV_HANDLE PrimaryName,_In_ wchar_t * AccountName,_In_ NETLOGON_SECURE_CHANNEL_TYPE SecureChannelType,_In_ wchar_t * ComputerName,_In_ PNETLOGON_CREDENTIAL ClientCredential,_Out_ PNETLOGON_CREDENTIAL ServerCredential,_Inout_ ULONG * NegotiateFlags,_Out_ ULONG * AccountRid)479 NetrServerAuthenticate3(
480 _In_opt_ LOGONSRV_HANDLE PrimaryName,
481 _In_ wchar_t *AccountName,
482 _In_ NETLOGON_SECURE_CHANNEL_TYPE SecureChannelType,
483 _In_ wchar_t *ComputerName,
484 _In_ PNETLOGON_CREDENTIAL ClientCredential,
485 _Out_ PNETLOGON_CREDENTIAL ServerCredential,
486 _Inout_ ULONG *NegotiateFlags,
487 _Out_ ULONG *AccountRid)
488 {
489 UNIMPLEMENTED;
490 return 0;
491 }
492
493
494 /* Function 27 */
495 NET_API_STATUS
496 __stdcall
DsrGetDcNameEx(_In_opt_ LOGONSRV_HANDLE ComputerName,_In_opt_ wchar_t * DomainName,_In_opt_ GUID * DomainGuid,_In_opt_ wchar_t * SiteName,_In_ ULONG Flags,_Out_ PDOMAIN_CONTROLLER_INFOW * DomainControllerInfo)497 DsrGetDcNameEx(
498 _In_opt_ LOGONSRV_HANDLE ComputerName,
499 _In_opt_ wchar_t *DomainName,
500 _In_opt_ GUID *DomainGuid,
501 _In_opt_ wchar_t *SiteName,
502 _In_ ULONG Flags,
503 _Out_ PDOMAIN_CONTROLLER_INFOW *DomainControllerInfo)
504 {
505 UNIMPLEMENTED;
506 return 0;
507 }
508
509
510 /* Function 28 */
511 NET_API_STATUS
512 __stdcall
DsrGetSiteName(_In_opt_ LOGONSRV_HANDLE ComputerName,_Out_ wchar_t ** SiteName)513 DsrGetSiteName(
514 _In_opt_ LOGONSRV_HANDLE ComputerName,
515 _Out_ wchar_t **SiteName)
516 {
517 UNIMPLEMENTED;
518 return 0;
519 }
520
521
522 /* Function 29 */
523 NTSTATUS
524 __stdcall
NetrLogonGetDomainInfo(_In_ LOGONSRV_HANDLE ServerName,_In_opt_ wchar_t * ComputerName,_In_ PNETLOGON_AUTHENTICATOR Authenticator,_Inout_ PNETLOGON_AUTHENTICATOR ReturnAuthenticator,_In_ DWORD Level,_In_ PNETLOGON_WORKSTATION_INFORMATION WkstaBuffer,_Out_ PNETLOGON_DOMAIN_INFORMATION DomBuffer)525 NetrLogonGetDomainInfo(
526 _In_ LOGONSRV_HANDLE ServerName,
527 _In_opt_ wchar_t *ComputerName,
528 _In_ PNETLOGON_AUTHENTICATOR Authenticator,
529 _Inout_ PNETLOGON_AUTHENTICATOR ReturnAuthenticator,
530 _In_ DWORD Level,
531 _In_ PNETLOGON_WORKSTATION_INFORMATION WkstaBuffer,
532 _Out_ PNETLOGON_DOMAIN_INFORMATION DomBuffer)
533 {
534 UNIMPLEMENTED;
535 return 0;
536 }
537
538
539 /* Function 30 */
540 NTSTATUS
541 __stdcall
NetrServerPasswordSet2(_In_opt_ LOGONSRV_HANDLE PrimaryName,_In_ wchar_t * AccountName,_In_ NETLOGON_SECURE_CHANNEL_TYPE SecureChannelType,_In_ wchar_t * ComputerName,_In_ PNETLOGON_AUTHENTICATOR Authenticator,_Out_ PNETLOGON_AUTHENTICATOR ReturnAuthenticator,_In_ PNL_TRUST_PASSWORD ClearNewPassword)542 NetrServerPasswordSet2(
543 _In_opt_ LOGONSRV_HANDLE PrimaryName,
544 _In_ wchar_t *AccountName,
545 _In_ NETLOGON_SECURE_CHANNEL_TYPE SecureChannelType,
546 _In_ wchar_t *ComputerName,
547 _In_ PNETLOGON_AUTHENTICATOR Authenticator,
548 _Out_ PNETLOGON_AUTHENTICATOR ReturnAuthenticator,
549 _In_ PNL_TRUST_PASSWORD ClearNewPassword)
550 {
551 UNIMPLEMENTED;
552 return 0;
553 }
554
555
556 /* Function 31 */
557 NTSTATUS
558 __stdcall
NetrServerPasswordGet(_In_opt_ LOGONSRV_HANDLE PrimaryName,_In_ wchar_t * AccountName,_In_ NETLOGON_SECURE_CHANNEL_TYPE AccountType,_In_ wchar_t * ComputerName,_In_ PNETLOGON_AUTHENTICATOR Authenticator,_Out_ PNETLOGON_AUTHENTICATOR ReturnAuthenticator,_Out_ PENCRYPTED_NT_OWF_PASSWORD EncryptedNtOwfPassword)559 NetrServerPasswordGet(
560 _In_opt_ LOGONSRV_HANDLE PrimaryName,
561 _In_ wchar_t *AccountName,
562 _In_ NETLOGON_SECURE_CHANNEL_TYPE AccountType,
563 _In_ wchar_t *ComputerName,
564 _In_ PNETLOGON_AUTHENTICATOR Authenticator,
565 _Out_ PNETLOGON_AUTHENTICATOR ReturnAuthenticator,
566 _Out_ PENCRYPTED_NT_OWF_PASSWORD EncryptedNtOwfPassword)
567 {
568 UNIMPLEMENTED;
569 return 0;
570 }
571
572
573 /* Function 32 */
574 NTSTATUS
575 __stdcall
NetrLogonSendToSam(_In_opt_ LOGONSRV_HANDLE PrimaryName,_In_ wchar_t * ComputerName,_In_ PNETLOGON_AUTHENTICATOR Authenticator,_Out_ PNETLOGON_AUTHENTICATOR ReturnAuthenticator,_In_ UCHAR * OpaqueBuffer,_In_ ULONG OpaqueBufferSize)576 NetrLogonSendToSam(
577 _In_opt_ LOGONSRV_HANDLE PrimaryName,
578 _In_ wchar_t *ComputerName,
579 _In_ PNETLOGON_AUTHENTICATOR Authenticator,
580 _Out_ PNETLOGON_AUTHENTICATOR ReturnAuthenticator,
581 _In_ UCHAR *OpaqueBuffer,
582 _In_ ULONG OpaqueBufferSize)
583 {
584 UNIMPLEMENTED;
585 return 0;
586 }
587
588
589 /* Function 33 */
590 NET_API_STATUS
591 __stdcall
DsrAddressToSiteNamesW(_In_opt_ LOGONSRV_HANDLE ComputerName,_In_ DWORD EntryCount,_In_ PNL_SOCKET_ADDRESS SocketAddresses,_Out_ PNL_SITE_NAME_ARRAY * SiteNames)592 DsrAddressToSiteNamesW(
593 _In_opt_ LOGONSRV_HANDLE ComputerName,
594 _In_ DWORD EntryCount,
595 _In_ PNL_SOCKET_ADDRESS SocketAddresses,
596 _Out_ PNL_SITE_NAME_ARRAY *SiteNames)
597 {
598 UNIMPLEMENTED;
599 return 0;
600 }
601
602
603 /* Function 34 */
604 NET_API_STATUS
605 __stdcall
DsrGetDcNameEx2(_In_opt_ LOGONSRV_HANDLE ComputerName,_In_opt_ wchar_t * AccountName,_In_ ULONG AllowableAccountControlBits,_In_opt_ wchar_t * DomainName,_In_opt_ GUID * DomainGuid,_In_opt_ wchar_t * SiteName,_In_ ULONG Flags,_Out_ PDOMAIN_CONTROLLER_INFOW * DomainControllerInfo)606 DsrGetDcNameEx2(
607 _In_opt_ LOGONSRV_HANDLE ComputerName,
608 _In_opt_ wchar_t *AccountName,
609 _In_ ULONG AllowableAccountControlBits,
610 _In_opt_ wchar_t *DomainName,
611 _In_opt_ GUID *DomainGuid,
612 _In_opt_ wchar_t *SiteName,
613 _In_ ULONG Flags,
614 _Out_ PDOMAIN_CONTROLLER_INFOW *DomainControllerInfo)
615 {
616 UNIMPLEMENTED;
617 return NERR_DCNotFound;
618 }
619
620
621 /* Function 35 */
622 NET_API_STATUS
623 __stdcall
NetrLogonGetTimeServiceParentDomain(_In_opt_ LOGONSRV_HANDLE ServerName,_Out_ wchar_t ** DomainName,_Out_ int * PdcSameSite)624 NetrLogonGetTimeServiceParentDomain(
625 _In_opt_ LOGONSRV_HANDLE ServerName,
626 _Out_ wchar_t **DomainName,
627 _Out_ int *PdcSameSite)
628 {
629 UNIMPLEMENTED;
630 return 0;
631 }
632
633
634 /* Function 36 */
635 NET_API_STATUS
636 __stdcall
NetrEnumerateTrustedDomainsEx(_In_opt_ LOGONSRV_HANDLE ServerName,_Out_ PNETLOGON_TRUSTED_DOMAIN_ARRAY Domains)637 NetrEnumerateTrustedDomainsEx(
638 _In_opt_ LOGONSRV_HANDLE ServerName,
639 _Out_ PNETLOGON_TRUSTED_DOMAIN_ARRAY Domains)
640 {
641 UNIMPLEMENTED;
642 return 0;
643 }
644
645
646 /* Function 37 */
647 NET_API_STATUS
648 __stdcall
DsrAddressToSiteNamesExW(_In_opt_ LOGONSRV_HANDLE ComputerName,_In_ DWORD EntryCount,_In_ PNL_SOCKET_ADDRESS SocketAddresses,_Out_ PNL_SITE_NAME_EX_ARRAY * SiteNames)649 DsrAddressToSiteNamesExW(
650 _In_opt_ LOGONSRV_HANDLE ComputerName,
651 _In_ DWORD EntryCount,
652 _In_ PNL_SOCKET_ADDRESS SocketAddresses,
653 _Out_ PNL_SITE_NAME_EX_ARRAY *SiteNames)
654 {
655 UNIMPLEMENTED;
656 return 0;
657 }
658
659
660 /* Function 38 */
661 NET_API_STATUS
662 __stdcall
DsrGetDcSiteCoverageW(_In_opt_ LOGONSRV_HANDLE ServerName,_Out_ PNL_SITE_NAME_ARRAY * SiteNames)663 DsrGetDcSiteCoverageW(
664 _In_opt_ LOGONSRV_HANDLE ServerName,
665 _Out_ PNL_SITE_NAME_ARRAY *SiteNames)
666 {
667 UNIMPLEMENTED;
668 return 0;
669 }
670
671
672 /* Function 39 */
673 NTSTATUS
674 __stdcall
NetrLogonSamLogonEx(_In_ handle_t ContextHandle,_In_opt_ wchar_t * LogonServer,_In_opt_ wchar_t * ComputerName,_In_ NETLOGON_LOGON_INFO_CLASS LogonLevel,_In_ PNETLOGON_LEVEL LogonInformation,_In_ NETLOGON_VALIDATION_INFO_CLASS ValidationLevel,_Out_ PNETLOGON_VALIDATION ValidationInformation,_Out_ UCHAR * Authoritative,_Inout_ ULONG * ExtraFlags)675 NetrLogonSamLogonEx(
676 _In_ handle_t ContextHandle,
677 _In_opt_ wchar_t *LogonServer,
678 _In_opt_ wchar_t *ComputerName,
679 _In_ NETLOGON_LOGON_INFO_CLASS LogonLevel,
680 _In_ PNETLOGON_LEVEL LogonInformation,
681 _In_ NETLOGON_VALIDATION_INFO_CLASS ValidationLevel,
682 _Out_ PNETLOGON_VALIDATION ValidationInformation,
683 _Out_ UCHAR *Authoritative,
684 _Inout_ ULONG *ExtraFlags)
685 {
686 UNIMPLEMENTED;
687 return 0;
688 }
689
690
691 /* Function 40 */
692 NET_API_STATUS
693 __stdcall
DsrEnumerateDomainTrusts(_In_opt_ LOGONSRV_HANDLE ServerName,_In_ ULONG Flags,_Out_ PNETLOGON_TRUSTED_DOMAIN_ARRAY Domains)694 DsrEnumerateDomainTrusts(
695 _In_opt_ LOGONSRV_HANDLE ServerName,
696 _In_ ULONG Flags,
697 _Out_ PNETLOGON_TRUSTED_DOMAIN_ARRAY Domains)
698 {
699 UNIMPLEMENTED;
700 return 0;
701 }
702
703
704 /* Function 41 */
705 NET_API_STATUS
706 __stdcall
DsrDeregisterDnsHostRecords(_In_opt_ LOGONSRV_HANDLE ServerName,_In_opt_ wchar_t * DnsDomainName,_In_opt_ GUID * DomainGuid,_In_opt_ GUID * DsaGuid,_In_ wchar_t * DnsHostName)707 DsrDeregisterDnsHostRecords(
708 _In_opt_ LOGONSRV_HANDLE ServerName,
709 _In_opt_ wchar_t *DnsDomainName,
710 _In_opt_ GUID *DomainGuid,
711 _In_opt_ GUID *DsaGuid,
712 _In_ wchar_t *DnsHostName)
713 {
714 UNIMPLEMENTED;
715 return 0;
716 }
717
718
719 /* Function 42 */
720 NTSTATUS
721 __stdcall
NetrServerTrustPasswordsGet(_In_opt_ LOGONSRV_HANDLE TrustedDcName,_In_ wchar_t * AccountName,_In_ NETLOGON_SECURE_CHANNEL_TYPE SecureChannelType,_In_ wchar_t * ComputerName,_In_ PNETLOGON_AUTHENTICATOR Authenticator,_Out_ PNETLOGON_AUTHENTICATOR ReturnAuthenticator,_Out_ PENCRYPTED_NT_OWF_PASSWORD EncryptedNewOwfPassword,_Out_ PENCRYPTED_NT_OWF_PASSWORD EncryptedOldOwfPassword)722 NetrServerTrustPasswordsGet(
723 _In_opt_ LOGONSRV_HANDLE TrustedDcName,
724 _In_ wchar_t *AccountName,
725 _In_ NETLOGON_SECURE_CHANNEL_TYPE SecureChannelType,
726 _In_ wchar_t *ComputerName,
727 _In_ PNETLOGON_AUTHENTICATOR Authenticator,
728 _Out_ PNETLOGON_AUTHENTICATOR ReturnAuthenticator,
729 _Out_ PENCRYPTED_NT_OWF_PASSWORD EncryptedNewOwfPassword,
730 _Out_ PENCRYPTED_NT_OWF_PASSWORD EncryptedOldOwfPassword)
731 {
732 UNIMPLEMENTED;
733 return 0;
734 }
735
736
737 /* Function 43 */
738 NET_API_STATUS
739 __stdcall
DsrGetForestTrustInformation(_In_opt_ LOGONSRV_HANDLE ServerName,_In_opt_ wchar_t * TrustedDomainName,_In_ DWORD Flags,_Out_ PLSA_FOREST_TRUST_INFORMATION * ForestTrustInfo)740 DsrGetForestTrustInformation(
741 _In_opt_ LOGONSRV_HANDLE ServerName,
742 _In_opt_ wchar_t *TrustedDomainName,
743 _In_ DWORD Flags,
744 _Out_ PLSA_FOREST_TRUST_INFORMATION *ForestTrustInfo)
745 {
746 UNIMPLEMENTED;
747 return 0;
748 }
749
750
751 /* Function 44 */
752 NTSTATUS
753 __stdcall
NetrGetForestTrustInformation(_In_opt_ LOGONSRV_HANDLE ServerName,_In_ wchar_t * ComputerName,_In_ PNETLOGON_AUTHENTICATOR Authenticator,_Out_ PNETLOGON_AUTHENTICATOR ReturnAuthenticator,_In_ DWORD Flags,_Out_ PLSA_FOREST_TRUST_INFORMATION * ForestTrustInfo)754 NetrGetForestTrustInformation(
755 _In_opt_ LOGONSRV_HANDLE ServerName,
756 _In_ wchar_t *ComputerName,
757 _In_ PNETLOGON_AUTHENTICATOR Authenticator,
758 _Out_ PNETLOGON_AUTHENTICATOR ReturnAuthenticator,
759 _In_ DWORD Flags,
760 _Out_ PLSA_FOREST_TRUST_INFORMATION *ForestTrustInfo)
761 {
762 UNIMPLEMENTED;
763 return 0;
764 }
765
766
767 /* Function 45 */
768 NTSTATUS
769 __stdcall
NetrLogonSamLogonWithFlags(_In_opt_ LOGONSRV_HANDLE LogonServer,_In_opt_ wchar_t * ComputerName,_In_opt_ PNETLOGON_AUTHENTICATOR Authenticator,_Inout_opt_ PNETLOGON_AUTHENTICATOR ReturnAuthenticator,_In_ NETLOGON_LOGON_INFO_CLASS LogonLevel,_In_ PNETLOGON_LEVEL LogonInformation,_In_ NETLOGON_VALIDATION_INFO_CLASS ValidationLevel,_Out_ PNETLOGON_VALIDATION ValidationInformation,_Out_ UCHAR * Authoritative,_Inout_ ULONG * ExtraFlags)770 NetrLogonSamLogonWithFlags(
771 _In_opt_ LOGONSRV_HANDLE LogonServer,
772 _In_opt_ wchar_t *ComputerName,
773 _In_opt_ PNETLOGON_AUTHENTICATOR Authenticator,
774 _Inout_opt_ PNETLOGON_AUTHENTICATOR ReturnAuthenticator,
775 _In_ NETLOGON_LOGON_INFO_CLASS LogonLevel,
776 _In_ PNETLOGON_LEVEL LogonInformation,
777 _In_ NETLOGON_VALIDATION_INFO_CLASS ValidationLevel,
778 _Out_ PNETLOGON_VALIDATION ValidationInformation,
779 _Out_ UCHAR *Authoritative,
780 _Inout_ ULONG *ExtraFlags)
781 {
782 UNIMPLEMENTED;
783 return 0;
784 }
785
786
787 /* Function 46 */
788 NTSTATUS
789 __stdcall
NetrServerGetTrustInfo(_In_opt_ LOGONSRV_HANDLE TrustedDcName,_In_ wchar_t * AccountName,_In_ NETLOGON_SECURE_CHANNEL_TYPE SecureChannelType,_In_ wchar_t * ComputerName,_In_ PNETLOGON_AUTHENTICATOR Authenticator,_Out_ PNETLOGON_AUTHENTICATOR ReturnAuthenticator,_Out_ PENCRYPTED_NT_OWF_PASSWORD EncryptedNewOwfPassword,_Out_ PENCRYPTED_NT_OWF_PASSWORD EncryptedOldOwfPassword,_Out_ PNL_GENERIC_RPC_DATA * TrustInfo)790 NetrServerGetTrustInfo(
791 _In_opt_ LOGONSRV_HANDLE TrustedDcName,
792 _In_ wchar_t *AccountName,
793 _In_ NETLOGON_SECURE_CHANNEL_TYPE SecureChannelType,
794 _In_ wchar_t *ComputerName,
795 _In_ PNETLOGON_AUTHENTICATOR Authenticator,
796 _Out_ PNETLOGON_AUTHENTICATOR ReturnAuthenticator,
797 _Out_ PENCRYPTED_NT_OWF_PASSWORD EncryptedNewOwfPassword,
798 _Out_ PENCRYPTED_NT_OWF_PASSWORD EncryptedOldOwfPassword,
799 _Out_ PNL_GENERIC_RPC_DATA *TrustInfo)
800 {
801 UNIMPLEMENTED;
802 return 0;
803 }
804
805 /* EOF */
806