xref: /reactos/base/services/netlogon/rpcserver.c (revision 7eead935)
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
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 
49 void __RPC_FAR * __RPC_USER midl_user_allocate(SIZE_T len)
50 {
51     return HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, len);
52 }
53 
54 
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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