16 #include "netlogon_c.h" 55 TRACE(
"LOGONSRV_HANDLE_bind() called\n");
65 TRACE(
"RpcStringBindingCompose returned 0x%x\n",
status);
74 TRACE(
"RpcBindingFromStringBinding returned 0x%x\n",
status);
95 TRACE(
"LOGONSRV_HANDLE_unbind() called\n");
123 TRACE(
"DsAddressToSiteNamesA(%s, %lu, %p, %p)\n",
124 debugstr_a(ComputerName), EntryCount, SocketAddresses, SiteNames);
129 if (ComputerName !=
NULL)
132 if (pComputerNameW ==
NULL)
149 for (
i = 0;
i < EntryCount;
i++)
151 if (pSiteNamesW[
i] !=
NULL)
168 for (
i = 0;
i < EntryCount;
i++)
170 if (pSiteNamesW[
i] !=
NULL)
172 pSiteNamesA[
i] =
Ptr;
193 *SiteNames = pSiteNamesA;
197 if (pSiteNamesA !=
NULL)
200 if (pSiteNamesW !=
NULL)
203 if (pComputerNameW !=
NULL)
223 TRACE(
"DsAddressToSiteNamesW(%s, %lu, %p, %p)\n",
224 debugstr_w(ComputerName), EntryCount, SocketAddresses, SiteNames);
257 SiteNamesBuffer[
i] =
Ptr;
265 *SiteNames = SiteNamesBuffer;
300 TRACE(
"DsAddressToSiteNamesExA(%s, %lu, %p, %p, %p)\n",
301 debugstr_a(ComputerName), EntryCount, SocketAddresses,
302 SiteNames, SubnetNames);
307 if (ComputerName !=
NULL)
310 if (pComputerNameW ==
NULL)
328 for (
i = 0;
i < EntryCount;
i++)
330 if (pSiteNamesW[
i] !=
NULL)
347 for (
i = 0;
i < EntryCount;
i++)
349 if (pSiteNamesW[
i] !=
NULL)
351 pSiteNamesA[
i] =
Ptr;
374 for (
i = 0;
i < EntryCount;
i++)
376 if (pSubnetNamesW[
i] !=
NULL)
393 for (
i = 0;
i < EntryCount;
i++)
395 if (pSubnetNamesW[
i] !=
NULL)
397 pSubnetNamesA[
i] =
Ptr;
418 *SiteNames = pSiteNamesA;
419 *SubnetNames = pSubnetNamesA;
421 pSubnetNamesA =
NULL;
424 if (pSubnetNamesA !=
NULL)
427 if (pSiteNamesA !=
NULL)
430 if (pSubnetNamesW !=
NULL)
433 if (pSiteNamesW !=
NULL)
436 if (pComputerNameW !=
NULL)
454 ULONG SiteNameBufferSize, SubnetNameBufferSize,
i;
457 TRACE(
"DsAddressToSiteNamesExW(%s, %lu, %p, %p, %p)\n",
458 debugstr_w(ComputerName), EntryCount, SocketAddresses,
459 SiteNames, SubnetNames);
492 ZeroMemory(SiteNamesBuffer, SiteNameBufferSize);
497 SiteNamesBuffer[
i] =
Ptr;
505 *SiteNames = SiteNamesBuffer;
511 ZeroMemory(SubnetNamesBuffer, SubnetNameBufferSize);
516 SubnetNamesBuffer[
i] =
Ptr;
524 *SubnetNames = SubnetNamesBuffer;
554 TRACE(
"DsDeregisterDnsHostRecordsA(%s, %s, %p, %p, %s)\n",
556 DomainGuid, DsaGuid,
debugstr_a(DnsHostName));
558 if (ServerName !=
NULL)
561 if (pServerNameW ==
NULL)
568 if (DnsDomainName !=
NULL)
571 if (pDnsDomainNameW ==
NULL)
579 if (pDnsHostNameW ==
NULL)
592 if (pDnsHostNameW !=
NULL)
595 if (pDnsDomainNameW !=
NULL)
598 if (pServerNameW !=
NULL)
616 TRACE(
"DsDeregisterDnsHostRecordsW(%s, %s, %p, %p, %s)\n",
618 DomainGuid, DsaGuid,
debugstr_w(DnsHostName));
656 TRACE(
"DsEnumerateDomainTrustsA(%s, %x, %p, %p)\n",
659 if (ServerName !=
NULL)
662 if (pServerNameW ==
NULL)
677 for (
i = 0;
i < *DomainCount;
i++)
680 pDomainsW[
i].NetbiosDomainName);
683 if (pDomainsW[
i].DnsDomainName !=
NULL)
686 pDomainsW[
i].DnsDomainName);
699 for (
i = 0;
i < *DomainCount;
i++)
701 pDomainsA[
i].NetbiosDomainName =
Ptr;
703 pDomainsW[
i].NetbiosDomainName);
720 if (pDomainsW[
i].DnsDomainName !=
NULL)
722 pDomainsA[
i].DnsDomainName =
Ptr;
724 pDomainsW[
i].DnsDomainName);
742 pDomainsA[
i].Flags = pDomainsW[
i].
Flags;
752 pDomainsW[
i].DomainSid);
763 &pDomainsW[
i].DomainGuid,
767 *Domains = pDomainsA;
771 if (pDomainsA !=
NULL)
774 if (pDomainsW !=
NULL)
777 if (pServerNameW !=
NULL)
795 TRACE(
"DsEnumerateDomainTrustsW(%s, %x, %p, %p)\n",
805 *Domains = DomainsArray.
Domains;
829 TRACE(
"DsGetDcNameA(%s, %s, %s, %s, %08lx, %p): stub\n",
839 DomainControllerInfo);
853 TRACE(
"DsGetDcNameW(%s, %s, %s, %s, %08lx, %p)\n",
863 DomainControllerInfo);
890 TRACE(
"DsGetDcNameWithAccountA(%s, %s, %08lx, %s, %s, %s, %08lx, %p): stub\n",
895 if (ComputerName !=
NULL)
898 if (pComputerNameW ==
NULL)
905 if (AccountName !=
NULL)
908 if (pAccountNameW ==
NULL)
916 if (pDomainNameW ==
NULL)
923 if (pSiteNameW ==
NULL)
936 &pDomainControllerInfoW);
977 pDomainControllerInfoA->DomainControllerAddressType =
980 pDomainControllerInfoA->Flags = pDomainControllerInfoW->
Flags;
982 CopyMemory(&pDomainControllerInfoA->DomainGuid,
989 pDomainControllerInfoA->DomainControllerName =
Ptr;
1008 pDomainControllerInfoA->DomainControllerAddress =
Ptr;
1027 pDomainControllerInfoA->DomainName =
Ptr;
1046 pDomainControllerInfoA->DnsForestName =
Ptr;
1067 pDomainControllerInfoA->DcSiteName =
Ptr;
1089 pDomainControllerInfoA->ClientSiteName =
Ptr;
1106 *DomainControllerInfo = pDomainControllerInfoA;
1107 pDomainControllerInfoA =
NULL;
1110 if (pDomainControllerInfoA !=
NULL)
1113 if (pDomainControllerInfoW !=
NULL)
1116 if (pSiteNameW !=
NULL)
1119 if (pDomainNameW !=
NULL)
1122 if (pAccountNameW !=
NULL)
1125 if (pComputerNameW !=
NULL)
1146 TRACE(
"DsGetDcNameWithAccountW(%s, %s, %08lx, %s, %s, %s, %08lx, %p): stub\n",
1160 DomainControllerInfo);
1189 TRACE(
"DsGetDcSiteCoverageA(%s, %p, %p)\n",
1190 debugstr_a(ServerName), EntryCount, SiteNames);
1192 if (ServerName !=
NULL)
1195 if (pServerNameW ==
NULL)
1209 for (
i = 0;
i < *EntryCount;
i++)
1222 for (
i = 0;
i < *EntryCount;
i++)
1224 pSiteNamesA[
i] =
Ptr;
1245 *SiteNames = pSiteNamesA;
1252 if (pSiteNamesW !=
NULL)
1255 if (pServerNameW !=
NULL)
1274 TRACE(
"DsGetDcSiteCoverageW(%s, %p, %p)\n",
1275 debugstr_w(ServerName), EntryCount, SiteNames);
1304 SiteNamesBuffer[
i] =
Ptr;
1313 *SiteNames = SiteNamesBuffer;
1340 TRACE(
"DsGetForestTrustInformationW(%s, %s, 0x%08lx, %p)\n",
1342 Flags, ForestTrustInfo);
1347 (
PWSTR)TrustedDomainName,
1371 TRACE(
"DsGetSiteNameA(%s, %p)\n",
1374 if (ComputerName !=
NULL)
1377 if (pComputerNameW ==
NULL)
1390 if (*SiteName ==
NULL)
1396 if (pSiteNameW !=
NULL)
1399 if (pComputerNameW !=
NULL)
1414 TRACE(
"DsGetSiteNameW(%s, %p)\n",
1440 FIXME(
"DsMergeForestTrustInformationW(%s, %p, %p, %p)\n",
1442 OldForestTrustInfo, ForestTrustInfo);
1452 FIXME(
"DsValidateSubnetNameA(%s)\n",
1463 FIXME(
"DsValidateSubnetNameW(%s)\n",
1478 TRACE(
"NetEnumerateTrustedDomains(%s, %p)\n",
1508 TRACE(
"NetGetAnyDCName(%s, %s, %p)\n",
1539 FIXME(
"NetGetDCName(%s, %s, %p)\n",
1551 &pDomainControllerInfo);
1565 FIXME(
"Not implemented yet!\n");
1570 if (pDomainControllerInfo !=
NULL)
1586 TRACE(
"NetLogonGetTimeServiceParentDomain(%s, %p, %p)\n",
1587 debugstr_w(ServerName), DomainName, PdcSameSite);
1614 TRACE(
"NetLogonSetServiceBits(%s 0x%lx 0x%lx)\n",
1615 debugstr_w(ServerName), ServiceBitsOfInterest, ServiceBits);
1620 ServiceBitsOfInterest,
NET_API_STATUS __stdcall DsrAddressToSiteNamesExW(_In_opt_ LOGONSRV_HANDLE ComputerName, _In_ DWORD EntryCount, _In_ PNL_SOCKET_ADDRESS SocketAddresses, _Out_ PNL_SITE_NAME_EX_ARRAY *SiteNames)
NTSTATUS WINAPI NetEnumerateTrustedDomains(_In_ LPWSTR ServerName, _Out_ LPWSTR *DomainNames)
DWORD WINAPI DsGetDcSiteCoverageW(_In_opt_ LPCWSTR ServerName, _Out_ PULONG EntryCount, _Out_ LPWSTR **SiteNames)
NET_API_STATUS WINAPI NetApiBufferAllocate(DWORD ByteCount, LPVOID *Buffer)
#define ERROR_INVALID_PARAMETER
RPC_STATUS WINAPI RpcBindingFromStringBindingW(RPC_WSTR StringBinding, RPC_BINDING_HANDLE *Binding)
PDS_DOMAIN_TRUSTSW Domains
RPC_STATUS WINAPI RpcBindingFree(RPC_BINDING_HANDLE *Binding)
NTSTATUS WINAPI NetLogonSetServiceBits(_In_ LPWSTR ServerName, _In_ DWORD ServiceBitsOfInterest, _In_ DWORD ServiceBits)
PSTR WINAPI NetpAllocAnsiStrFromWStr(_In_ PWSTR InString)
RPC_STATUS WINAPI RpcStringFreeW(RPC_WSTR *String)
NTSTATUS __stdcall NetrEnumerateTrustedDomains(_In_opt_ LOGONSRV_HANDLE ServerName, _Out_ PDOMAIN_NAME_BUFFER DomainNameBuffer)
DWORD WINAPI DsDeregisterDnsHostRecordsW(_In_opt_ LPWSTR ServerName, _In_opt_ LPWSTR DnsDomainName, _In_opt_ GUID *DomainGuid, _In_opt_ GUID *DsaGuid, _In_ LPWSTR DnsHostName)
DWORD WINAPI DsAddressToSiteNamesW(_In_opt_ LPCWSTR ComputerName, _In_ DWORD EntryCount, _In_ PSOCKET_ADDRESS SocketAddresses, _Out_ LPWSTR **SiteNames)
_Must_inspect_result_ _In_ PFSRTL_PER_STREAM_CONTEXT Ptr
WINE_DEFAULT_DEBUG_CHANNEL(netlogon)
#define ERROR_NOT_ENOUGH_MEMORY
DWORD WINAPI DsGetSiteNameW(_In_opt_ LPCWSTR ComputerName, _Out_ LPWSTR *SiteName)
DWORD WINAPI DsAddressToSiteNamesExW(_In_opt_ LPCWSTR ComputerName, _In_ DWORD EntryCount, _In_ PSOCKET_ADDRESS SocketAddresses, _Out_ LPWSTR **SiteNames, _Out_ LPWSTR **SubnetNames)
DWORD WINAPI DsGetDcNameW(_In_opt_ LPCWSTR ComputerName, _In_ LPCWSTR DomainName, _In_ GUID *DomainGuid, _In_ LPCWSTR SiteName, _In_ ULONG Flags, _Out_ PDOMAIN_CONTROLLER_INFOW *DomainControllerInfo)
DWORD WINAPI DsEnumerateDomainTrustsW(_In_opt_ LPWSTR ServerName, _In_ ULONG Flags, _Out_ PDS_DOMAIN_TRUSTSW *Domains, _Out_ PULONG DomainCount)
WDF_EXTERN_C_START typedef _Must_inspect_result_ _In_opt_ PCUNICODE_STRING UnicodeString
DWORD WINAPI DsValidateSubnetNameW(_In_ LPCWSTR SubnetName)
DWORD WINAPI DsAddressToSiteNamesA(_In_opt_ LPCSTR ComputerName, _In_ DWORD EntryCount, _In_ PSOCKET_ADDRESS SocketAddresses, _Out_ LPSTR **SiteNames)
RPC_STATUS WINAPI RpcStringBindingComposeW(RPC_WSTR ObjUuid, RPC_WSTR Protseq, RPC_WSTR NetworkAddr, RPC_WSTR Endpoint, RPC_WSTR Options, RPC_WSTR *StringBinding)
struct _DOMAIN_CONTROLLER_INFOA DOMAIN_CONTROLLER_INFOA
PWSTR WINAPI NetpAllocWStrFromAnsiStr(_In_ PSTR InString)
NTSYSAPI ULONG WINAPI RtlNtStatusToDosError(NTSTATUS)
PRPC_UNICODE_STRING SubnetNames
PRPC_UNICODE_STRING SiteNames
struct _DS_DOMAIN_TRUSTSA DS_DOMAIN_TRUSTSA
DWORD WINAPI DsGetDcSiteCoverageA(_In_opt_ LPCSTR ServerName, _Out_ PULONG EntryCount, _Out_ LPSTR **SiteNames)
NET_API_STATUS __stdcall NetrLogonGetTimeServiceParentDomain(_In_opt_ LOGONSRV_HANDLE ServerName, _Out_ wchar_t **DomainName, _Out_ int *PdcSameSite)
DWORD WINAPI DsDeregisterDnsHostRecordsA(_In_opt_ LPSTR ServerName, _In_opt_ LPSTR DnsDomainName, _In_opt_ GUID *DomainGuid, _In_opt_ GUID *DsaGuid, _In_ LPSTR DnsHostName)
handle_t __RPC_USER LOGONSRV_HANDLE_bind(LOGONSRV_HANDLE pszSystemName)
LPWSTR DomainControllerName
NET_API_STATUS __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)
DWORD WINAPI DsGetDcNameWithAccountW(_In_opt_ LPCWSTR ComputerName, _In_opt_ LPCWSTR AccountName, _In_ ULONG AccountControlBits, _In_ LPCWSTR DomainName, _In_ GUID *DomainGuid, _In_ LPCWSTR SiteName, _In_ ULONG Flags, _Out_ PDOMAIN_CONTROLLER_INFOW *DomainControllerInfo)
NET_API_STATUS __stdcall DsrDeregisterDnsHostRecords(_In_opt_ LOGONSRV_HANDLE ServerName, _In_opt_ wchar_t *DnsDomainName, _In_opt_ GUID *DomainGuid, _In_opt_ GUID *DsaGuid, _In_ wchar_t *DnsHostName)
NTSYSAPI ULONG NTAPI RtlLengthSid(IN PSID Sid)
NTSYSAPI NTSTATUS NTAPI RtlUnicodeStringToAnsiString(PANSI_STRING DestinationString, PUNICODE_STRING SourceString, BOOLEAN AllocateDestinationString)
DWORD WINAPI DsValidateSubnetNameA(_In_ LPCSTR SubnetName)
NET_API_STATUS __stdcall DsrGetSiteName(_In_opt_ LOGONSRV_HANDLE ComputerName, _Out_ wchar_t **SiteName)
DWORD WINAPI DsGetDcNameWithAccountA(_In_opt_ LPCSTR ComputerName, _In_opt_ LPCSTR AccountName, _In_ ULONG AccountControlBits, _In_ LPCSTR DomainName, _In_ GUID *DomainGuid, _In_ LPCSTR SiteName, _In_ ULONG Flags, _Out_ PDOMAIN_CONTROLLER_INFOA *DomainControllerInfo)
wchar_t * LOGONSRV_HANDLE
#define RpcExceptionCode()
_Must_inspect_result_ _In_ ULONG Flags
NET_API_STATUS WINAPI NetGetAnyDCName(_In_opt_ LPCWSTR ServerName, _In_opt_ LPCWSTR DomainName, _Out_ LPBYTE *BufPtr)
#define NT_SUCCESS(StatCode)
#define EXCEPTION_EXECUTE_HANDLER
NET_API_STATUS __stdcall NetrGetAnyDCName(_In_opt_ LOGONSRV_HANDLE ServerName, _In_opt_ wchar_t *DomainName, _Out_ wchar_t **Buffer)
DWORD WINAPI DsGetDcNameA(_In_opt_ LPCSTR ComputerName, _In_ LPCSTR DomainName, _In_ GUID *DomainGuid, _In_ LPCSTR SiteName, _In_ ULONG Flags, _Out_ PDOMAIN_CONTROLLER_INFOA *DomainControllerInfo)
NTSTATUS __stdcall NetrLogonSetServiceBits(_In_opt_ LOGONSRV_HANDLE ServerName, _In_ DWORD ServiceBitsOfInterest, _In_ DWORD ServiceBits)
_CRTIMP wchar_t *__cdecl wcscpy(_Out_writes_z_(_String_length_(_Source)+1) wchar_t *_Dest, _In_z_ const wchar_t *_Source)
NET_API_STATUS __stdcall DsrAddressToSiteNamesW(_In_opt_ LOGONSRV_HANDLE ComputerName, _In_ DWORD EntryCount, _In_ PNL_SOCKET_ADDRESS SocketAddresses, _Out_ PNL_SITE_NAME_ARRAY *SiteNames)
void __RPC_USER LOGONSRV_HANDLE_unbind(LOGONSRV_HANDLE pszSystemName, handle_t hBinding)
NET_API_STATUS __stdcall DsrEnumerateDomainTrusts(_In_opt_ LOGONSRV_HANDLE ServerName, _In_ ULONG Flags, _Out_ PNETLOGON_TRUSTED_DOMAIN_ARRAY Domains)
NTSYSAPI BOOLEAN WINAPI RtlCopySid(DWORD, PSID, PSID)
NTSYSAPI DWORD WINAPI RtlUnicodeStringToAnsiSize(const UNICODE_STRING *)
NET_API_STATUS WINAPI NetApiBufferFree(LPVOID Buffer)
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
DWORD WINAPI DsMergeForestTrustInformationW(_In_ LPCWSTR DomainName, _In_ PLSA_FOREST_TRUST_INFORMATION NewForestTrustInfo, _In_opt_ PLSA_FOREST_TRUST_INFORMATION OldForestTrustInfo, _Out_ PLSA_FOREST_TRUST_INFORMATION *ForestTrustInfo)
NET_API_STATUS __stdcall DsrGetForestTrustInformation(_In_opt_ LOGONSRV_HANDLE ServerName, _In_opt_ wchar_t *TrustedDomainName, _In_ DWORD Flags, _Out_ PLSA_FOREST_TRUST_INFORMATION *ForestTrustInfo)
DWORD WINAPI DsEnumerateDomainTrustsA(_In_opt_ LPSTR ServerName, _In_ ULONG Flags, _Out_ PDS_DOMAIN_TRUSTSA *Domains, _Out_ PULONG DomainCount)
_CRTIMP size_t __cdecl wcslen(_In_z_ const wchar_t *_Str)
ULONG DomainControllerAddressType
NET_API_STATUS WINAPI NetLogonGetTimeServiceParentDomain(_In_ LPWSTR ServerName, _Out_ LPWSTR *DomainName, _Out_ LPBOOL PdcSameSite)
PRPC_UNICODE_STRING SiteNames
#define ERROR_CALL_NOT_IMPLEMENTED
NTSYSAPI VOID NTAPI RtlInitUnicodeString(PUNICODE_STRING DestinationString, PCWSTR SourceString)
DWORD WINAPI DsAddressToSiteNamesExA(_In_opt_ LPCSTR ComputerName, _In_ DWORD EntryCount, _In_ PSOCKET_ADDRESS SocketAddresses, _Out_ LPSTR **SiteNames, _Out_ LPSTR **SubnetNames)
NET_API_STATUS __stdcall DsrGetDcSiteCoverageW(_In_opt_ LOGONSRV_HANDLE ServerName, _Out_ PNL_SITE_NAME_ARRAY *SiteNames)
void __RPC_USER MIDL_user_free(void *p)
LPWSTR DomainControllerAddress
static SERVICE_STATUS status
DWORD WINAPI DsGetForestTrustInformationW(_In_opt_ LPCWSTR ServerName, _In_opt_ LPCWSTR TrustedDomainName, _In_ DWORD Flags, _Out_ PLSA_FOREST_TRUST_INFORMATION *ForestTrustInfo)
NET_API_STATUS WINAPI NetGetDCName(_In_opt_ LPCWSTR ServerName, _In_opt_ LPCWSTR DomainName, _Out_ LPBYTE *BufPtr)
DWORD WINAPI DsGetSiteNameA(_In_opt_ LPCSTR ComputerName, _Out_ LPSTR *SiteName)
_In_ WDFMEMORY _Out_opt_ size_t * BufferSize
LONG WINAPI I_RpcMapWin32Status(RPC_STATUS status)