[07/10] netapi32: Merge ds.c into netapi32.c.
Hans Leidekker
hans at codeweavers.com
Tue Nov 12 03:02:40 CST 2013
---
dlls/netapi32/Makefile.in | 1 -
dlls/netapi32/ds.c | 156 ----------------------------------------------
dlls/netapi32/netapi32.c | 127 ++++++++++++++++++++++++++++++++++++-
3 files changed, 126 insertions(+), 158 deletions(-)
delete mode 100644 dlls/netapi32/ds.c
diff --git a/dlls/netapi32/Makefile.in b/dlls/netapi32/Makefile.in
index 7ea1adc..9263868 100644
--- a/dlls/netapi32/Makefile.in
+++ b/dlls/netapi32/Makefile.in
@@ -4,7 +4,6 @@ IMPORTLIB = netapi32
IMPORTS = iphlpapi ws2_32 advapi32
C_SRCS = \
- ds.c \
local_group.c \
nbcmdqueue.c \
nbnamecache.c \
diff --git a/dlls/netapi32/ds.c b/dlls/netapi32/ds.c
deleted file mode 100644
index e7bbe9c..0000000
--- a/dlls/netapi32/ds.c
+++ /dev/null
@@ -1,156 +0,0 @@
-/*
- * Copyright 2005 Paul Vriens
- *
- * netapi32 directory service functions
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
- */
-
-#include <stdarg.h>
-
-#include "ntstatus.h"
-#define WIN32_NO_STATUS
-#include "windef.h"
-#include "winbase.h"
-#include "winerror.h"
-#include "ntsecapi.h"
-#include "wine/debug.h"
-#include "dsrole.h"
-#include "dsgetdc.h"
-
-WINE_DEFAULT_DEBUG_CHANNEL(ds);
-
-DWORD WINAPI DsGetDcNameW(LPCWSTR ComputerName, LPCWSTR AvoidDCName,
- GUID* DomainGuid, LPCWSTR SiteName, ULONG Flags,
- PDOMAIN_CONTROLLER_INFOW *DomainControllerInfo)
-{
- FIXME("(%s, %s, %s, %s, %08x, %p): stub\n", debugstr_w(ComputerName),
- debugstr_w(AvoidDCName), debugstr_guid(DomainGuid),
- debugstr_w(SiteName), Flags, DomainControllerInfo);
- return ERROR_CALL_NOT_IMPLEMENTED;
-}
-
-DWORD WINAPI DsGetDcNameA(LPCSTR ComputerName, LPCSTR AvoidDCName,
- GUID* DomainGuid, LPCSTR SiteName, ULONG Flags,
- PDOMAIN_CONTROLLER_INFOA *DomainControllerInfo)
-{
- FIXME("(%s, %s, %s, %s, %08x, %p): stub\n", debugstr_a(ComputerName),
- debugstr_a(AvoidDCName), debugstr_guid(DomainGuid),
- debugstr_a(SiteName), Flags, DomainControllerInfo);
- return ERROR_CALL_NOT_IMPLEMENTED;
-}
-
-DWORD WINAPI DsGetSiteNameW(LPCWSTR ComputerName, LPWSTR *SiteName)
-{
- FIXME("(%s, %p): stub\n", debugstr_w(ComputerName), SiteName);
- return ERROR_CALL_NOT_IMPLEMENTED;
-}
-
-DWORD WINAPI DsGetSiteNameA(LPCSTR ComputerName, LPSTR *SiteName)
-{
- FIXME("(%s, %p): stub\n", debugstr_a(ComputerName), SiteName);
- return ERROR_CALL_NOT_IMPLEMENTED;
-}
-
-/************************************************************
- * DsRoleFreeMemory (NETAPI32.@)
- *
- * PARAMS
- * Buffer [I] Pointer to the to-be-freed buffer.
- *
- * RETURNS
- * Nothing
- */
-VOID WINAPI DsRoleFreeMemory(PVOID Buffer)
-{
- TRACE("(%p)\n", Buffer);
- HeapFree(GetProcessHeap(), 0, Buffer);
-}
-
-/************************************************************
- * DsRoleGetPrimaryDomainInformation (NETAPI32.@)
- *
- * PARAMS
- * lpServer [I] Pointer to UNICODE string with ComputerName
- * InfoLevel [I] Type of data to retrieve
- * Buffer [O] Pointer to to the requested data
- *
- * RETURNS
- *
- * NOTES
- * When lpServer is NULL, use the local computer
- */
-DWORD WINAPI DsRoleGetPrimaryDomainInformation(
- LPCWSTR lpServer, DSROLE_PRIMARY_DOMAIN_INFO_LEVEL InfoLevel,
- PBYTE* Buffer)
-{
- DWORD ret;
-
- FIXME("(%p, %d, %p) stub\n", lpServer, InfoLevel, Buffer);
-
- /* Check some input parameters */
-
- if (!Buffer) return ERROR_INVALID_PARAMETER;
- if ((InfoLevel < DsRolePrimaryDomainInfoBasic) || (InfoLevel > DsRoleOperationState)) return ERROR_INVALID_PARAMETER;
-
- *Buffer = NULL;
- switch (InfoLevel)
- {
- case DsRolePrimaryDomainInfoBasic:
- {
- LSA_OBJECT_ATTRIBUTES ObjectAttributes;
- LSA_HANDLE PolicyHandle;
- PPOLICY_ACCOUNT_DOMAIN_INFO DomainInfo;
- NTSTATUS NtStatus;
- int logon_domain_sz;
- DWORD size;
- PDSROLE_PRIMARY_DOMAIN_INFO_BASIC basic;
-
- ZeroMemory(&ObjectAttributes, sizeof(ObjectAttributes));
- NtStatus = LsaOpenPolicy(NULL, &ObjectAttributes,
- POLICY_VIEW_LOCAL_INFORMATION, &PolicyHandle);
- if (NtStatus != STATUS_SUCCESS)
- {
- TRACE("LsaOpenPolicyFailed with NT status %x\n",
- LsaNtStatusToWinError(NtStatus));
- return ERROR_OUTOFMEMORY;
- }
- LsaQueryInformationPolicy(PolicyHandle,
- PolicyAccountDomainInformation, (PVOID*)&DomainInfo);
- logon_domain_sz = lstrlenW(DomainInfo->DomainName.Buffer) + 1;
- LsaClose(PolicyHandle);
-
- size = sizeof(DSROLE_PRIMARY_DOMAIN_INFO_BASIC) +
- logon_domain_sz * sizeof(WCHAR);
- basic = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, size);
- if (basic)
- {
- basic->MachineRole = DsRole_RoleStandaloneWorkstation;
- basic->DomainNameFlat = (LPWSTR)((LPBYTE)basic +
- sizeof(DSROLE_PRIMARY_DOMAIN_INFO_BASIC));
- lstrcpyW(basic->DomainNameFlat, DomainInfo->DomainName.Buffer);
- ret = ERROR_SUCCESS;
- }
- else
- ret = ERROR_OUTOFMEMORY;
- *Buffer = (PBYTE)basic;
- LsaFreeMemory(DomainInfo);
- }
- break;
- default:
- ret = ERROR_CALL_NOT_IMPLEMENTED;
- }
- return ret;
-}
diff --git a/dlls/netapi32/netapi32.c b/dlls/netapi32/netapi32.c
index 9e9b478..86c4365 100644
--- a/dlls/netapi32/netapi32.c
+++ b/dlls/netapi32/netapi32.c
@@ -1,7 +1,7 @@
/* Copyright 2001 Mike McCormack
* Copyright 2002 Andriy Palamarchuk
* Copyright 2003 Juan Lang
- * Copyright 2006 Paul Vriens
+ * Copyright 2005,2006 Paul Vriens
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -45,6 +45,8 @@
#include "iphlpapi.h"
#include "ntsecapi.h"
#include "winnls.h"
+#include "dsrole.h"
+#include "dsgetdc.h"
#include "wine/debug.h"
#include "wine/list.h"
@@ -1996,3 +1998,126 @@ NET_API_STATUS WINAPI I_BrowserQueryEmulatedDomains(
{
return ERROR_NOT_SUPPORTED;
}
+
+DWORD WINAPI DsGetDcNameW(LPCWSTR ComputerName, LPCWSTR AvoidDCName,
+ GUID* DomainGuid, LPCWSTR SiteName, ULONG Flags,
+ PDOMAIN_CONTROLLER_INFOW *DomainControllerInfo)
+{
+ FIXME("(%s, %s, %s, %s, %08x, %p): stub\n", debugstr_w(ComputerName),
+ debugstr_w(AvoidDCName), debugstr_guid(DomainGuid),
+ debugstr_w(SiteName), Flags, DomainControllerInfo);
+ return ERROR_CALL_NOT_IMPLEMENTED;
+}
+
+DWORD WINAPI DsGetDcNameA(LPCSTR ComputerName, LPCSTR AvoidDCName,
+ GUID* DomainGuid, LPCSTR SiteName, ULONG Flags,
+ PDOMAIN_CONTROLLER_INFOA *DomainControllerInfo)
+{
+ FIXME("(%s, %s, %s, %s, %08x, %p): stub\n", debugstr_a(ComputerName),
+ debugstr_a(AvoidDCName), debugstr_guid(DomainGuid),
+ debugstr_a(SiteName), Flags, DomainControllerInfo);
+ return ERROR_CALL_NOT_IMPLEMENTED;
+}
+
+DWORD WINAPI DsGetSiteNameW(LPCWSTR ComputerName, LPWSTR *SiteName)
+{
+ FIXME("(%s, %p): stub\n", debugstr_w(ComputerName), SiteName);
+ return ERROR_CALL_NOT_IMPLEMENTED;
+}
+
+DWORD WINAPI DsGetSiteNameA(LPCSTR ComputerName, LPSTR *SiteName)
+{
+ FIXME("(%s, %p): stub\n", debugstr_a(ComputerName), SiteName);
+ return ERROR_CALL_NOT_IMPLEMENTED;
+}
+
+/************************************************************
+ * DsRoleFreeMemory (NETAPI32.@)
+ *
+ * PARAMS
+ * Buffer [I] Pointer to the to-be-freed buffer.
+ *
+ * RETURNS
+ * Nothing
+ */
+VOID WINAPI DsRoleFreeMemory(PVOID Buffer)
+{
+ TRACE("(%p)\n", Buffer);
+ HeapFree(GetProcessHeap(), 0, Buffer);
+}
+
+/************************************************************
+ * DsRoleGetPrimaryDomainInformation (NETAPI32.@)
+ *
+ * PARAMS
+ * lpServer [I] Pointer to UNICODE string with ComputerName
+ * InfoLevel [I] Type of data to retrieve
+ * Buffer [O] Pointer to to the requested data
+ *
+ * RETURNS
+ *
+ * NOTES
+ * When lpServer is NULL, use the local computer
+ */
+DWORD WINAPI DsRoleGetPrimaryDomainInformation(
+ LPCWSTR lpServer, DSROLE_PRIMARY_DOMAIN_INFO_LEVEL InfoLevel,
+ PBYTE* Buffer)
+{
+ DWORD ret;
+
+ FIXME("(%p, %d, %p) stub\n", lpServer, InfoLevel, Buffer);
+
+ /* Check some input parameters */
+
+ if (!Buffer) return ERROR_INVALID_PARAMETER;
+ if ((InfoLevel < DsRolePrimaryDomainInfoBasic) || (InfoLevel > DsRoleOperationState)) return ERROR_INVALID_PARAMETER;
+
+ *Buffer = NULL;
+ switch (InfoLevel)
+ {
+ case DsRolePrimaryDomainInfoBasic:
+ {
+ LSA_OBJECT_ATTRIBUTES ObjectAttributes;
+ LSA_HANDLE PolicyHandle;
+ PPOLICY_ACCOUNT_DOMAIN_INFO DomainInfo;
+ NTSTATUS NtStatus;
+ int logon_domain_sz;
+ DWORD size;
+ PDSROLE_PRIMARY_DOMAIN_INFO_BASIC basic;
+
+ ZeroMemory(&ObjectAttributes, sizeof(ObjectAttributes));
+ NtStatus = LsaOpenPolicy(NULL, &ObjectAttributes,
+ POLICY_VIEW_LOCAL_INFORMATION, &PolicyHandle);
+ if (NtStatus != STATUS_SUCCESS)
+ {
+ TRACE("LsaOpenPolicyFailed with NT status %x\n",
+ LsaNtStatusToWinError(NtStatus));
+ return ERROR_OUTOFMEMORY;
+ }
+ LsaQueryInformationPolicy(PolicyHandle,
+ PolicyAccountDomainInformation, (PVOID*)&DomainInfo);
+ logon_domain_sz = lstrlenW(DomainInfo->DomainName.Buffer) + 1;
+ LsaClose(PolicyHandle);
+
+ size = sizeof(DSROLE_PRIMARY_DOMAIN_INFO_BASIC) +
+ logon_domain_sz * sizeof(WCHAR);
+ basic = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, size);
+ if (basic)
+ {
+ basic->MachineRole = DsRole_RoleStandaloneWorkstation;
+ basic->DomainNameFlat = (LPWSTR)((LPBYTE)basic +
+ sizeof(DSROLE_PRIMARY_DOMAIN_INFO_BASIC));
+ lstrcpyW(basic->DomainNameFlat, DomainInfo->DomainName.Buffer);
+ ret = ERROR_SUCCESS;
+ }
+ else
+ ret = ERROR_OUTOFMEMORY;
+ *Buffer = (PBYTE)basic;
+ LsaFreeMemory(DomainInfo);
+ }
+ break;
+ default:
+ ret = ERROR_CALL_NOT_IMPLEMENTED;
+ }
+ return ret;
+}
--
1.8.1.5
More information about the wine-patches
mailing list