From e526cc62f97cdcf26412d0dd2a118adcaaede712 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=A9=20van=20Geldorp?= Date: Mon, 12 Dec 2005 23:04:15 +0000 Subject: [PATCH] =?UTF-8?q?Sync=20to=20Wine-0=5F9=5F3:=20Francois=20Gouget?= =?UTF-8?q?=20=20-=20Better=20stick=20to=20the=20PSDK=20t?= =?UTF-8?q?ypes=20and=20to=20the=20dsrole.h=20prototype.=20=20=20Update=20?= =?UTF-8?q?win32.api.=20Paul=20Vriens=20=20-=20Adde?= =?UTF-8?q?d=20some=20stubbed=20Ds-calls=20=20=20Start=20of=20conformance?= =?UTF-8?q?=20tests=20for=20these=20Ds-calls.=20Ge=20van=20Geldorp=20=20-=20Match=20PSDK=20STATUS=5F*=20definitions.=20V?= =?UTF-8?q?incent=20B=C3=A9ron=20=20-=20Add?= =?UTF-8?q?=20a=20few=20missing=20#includes.=20-=20Add=20some=20prototypes?= =?UTF-8?q?=20to=20include/=20for=20already=20existing=20functions=20in=20?= =?UTF-8?q?=20=20netapi32.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit svn path=/trunk/; revision=20134 --- reactos/lib/netapi32/browsr.c | 1 + reactos/lib/netapi32/ds.c | 70 +++++++++++++++++++++++++ reactos/lib/netapi32/netapi32.c | 1 + reactos/lib/netapi32/netapi32.spec | 15 ++++++ reactos/lib/netapi32/netapi32.xml | 1 + reactos/lib/netapi32/wksta.c | 3 +- reactos/w32api/include/dsrole.h | 84 ++++++++++++++++++++++++++++++ 7 files changed, 173 insertions(+), 2 deletions(-) create mode 100644 reactos/lib/netapi32/ds.c create mode 100644 reactos/w32api/include/dsrole.h diff --git a/reactos/lib/netapi32/browsr.c b/reactos/lib/netapi32/browsr.c index 3cda17ec7c8..b0ed893a749 100644 --- a/reactos/lib/netapi32/browsr.c +++ b/reactos/lib/netapi32/browsr.c @@ -25,6 +25,7 @@ #include "winerror.h" #include "lmcons.h" #include "lmbrowsr.h" +#include "lmshare.h" #include "wine/debug.h" WINE_DEFAULT_DEBUG_CHANNEL(netapi32); diff --git a/reactos/lib/netapi32/ds.c b/reactos/lib/netapi32/ds.c new file mode 100644 index 00000000000..15582778c4c --- /dev/null +++ b/reactos/lib/netapi32/ds.c @@ -0,0 +1,70 @@ +/* + * 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +#include + +#include "windef.h" +#include "winbase.h" +#include "winerror.h" +#include "wine/debug.h" +#include "dsrole.h" + +WINE_DEFAULT_DEBUG_CHANNEL(ds); + +/************************************************************ + * DsRoleFreeMemory (NETAPI32.@) + * + * PARAMS + * Buffer [I] Pointer to the to-be-freed buffer. + * + * RETURNS + * Nothing + */ +VOID WINAPI DsRoleFreeMemory(PVOID Buffer) +{ + FIXME("(%p) stub\n", 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) +{ + 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; + + return E_NOTIMPL; +} diff --git a/reactos/lib/netapi32/netapi32.c b/reactos/lib/netapi32/netapi32.c index 320109b1b8a..e01b9292b64 100644 --- a/reactos/lib/netapi32/netapi32.c +++ b/reactos/lib/netapi32/netapi32.c @@ -19,6 +19,7 @@ #include "config.h" #include "wine/debug.h" +#include "lm.h" #include "netbios.h" WINE_DEFAULT_DEBUG_CHANNEL(netbios); diff --git a/reactos/lib/netapi32/netapi32.spec b/reactos/lib/netapi32/netapi32.spec index 412ac72dabc..dbb42c49747 100644 --- a/reactos/lib/netapi32/netapi32.spec +++ b/reactos/lib/netapi32/netapi32.spec @@ -1,3 +1,18 @@ +@ stub DsAddressToSiteNames +@ stub DsAddressToSiteNamesEx +@ stub DsDeregisterDnsHostRecords +@ stub DsEnumerateDomainTrusts +@ stub DsGetDcClose +@ stub DsGetDcName +@ stub DsGetDcNext +@ stub DsGetDcOpen +@ stub DsGetDcSiteCoverage +@ stub DsGetForestTrustInformationW +@ stub DsGetSiteName +@ stub DsMergeForestTrustInformationW +@ stdcall DsRoleFreeMemory(ptr) +@ stdcall DsRoleGetPrimaryDomainInformation(wstr long ptr) +@ stub DsValidateSubnetName @ stub I_BrowserDebugCall @ stub I_BrowserDebugTrace @ stdcall I_BrowserQueryEmulatedDomains(wstr ptr ptr) diff --git a/reactos/lib/netapi32/netapi32.xml b/reactos/lib/netapi32/netapi32.xml index b5db33de5e8..04796c2b3a8 100644 --- a/reactos/lib/netapi32/netapi32.xml +++ b/reactos/lib/netapi32/netapi32.xml @@ -17,6 +17,7 @@ access.c apibuf.c browsr.c + ds.c nbcmdqueue.c nbnamecache.c nbt.c diff --git a/reactos/lib/netapi32/wksta.c b/reactos/lib/netapi32/wksta.c index 9b2da32a08a..425a9893c55 100644 --- a/reactos/lib/netapi32/wksta.c +++ b/reactos/lib/netapi32/wksta.c @@ -23,6 +23,7 @@ #include #include +#include "ntstatus.h" #define WIN32_NO_STATUS #include "windef.h" #include "winbase.h" @@ -34,8 +35,6 @@ #include "lmwksta.h" #include "iphlpapi.h" #include "winerror.h" -#undef WIN32_NO_STATUS -#include "ntstatus.h" #include "winreg.h" #include "ntsecapi.h" #include "netbios.h" diff --git a/reactos/w32api/include/dsrole.h b/reactos/w32api/include/dsrole.h new file mode 100644 index 00000000000..7364ace3034 --- /dev/null +++ b/reactos/w32api/include/dsrole.h @@ -0,0 +1,84 @@ +/* + * Directory Services definitions + * + * Copyright 2005 Paul Vriens + * + * 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +#ifndef __WINE_DSROLE_H +#define __WINE_DSROLE_H + +#define DSROLE_PRIMARY_DS_RUNNING 0x00000001 +#define DSROLE_PRIMARY_DS_MIXED_MODE 0x00000002 +#define DSROLE_UPGRADE_IN_PROGRESS 0x00000004 +#define DSROLE_PRIMARY_DOMAIN_GUID_PRESENT 0x01000000 + +typedef enum _DSROLE_PRIMARY_DOMAIN_INFO_LEVEL +{ + DsRolePrimaryDomainInfoBasic = 1, + DsRoleUpgradeStatus, + DsRoleOperationState +} DSROLE_PRIMARY_DOMAIN_INFO_LEVEL; + +typedef enum _DSROLE_MACHINE_ROLE +{ + DsRole_RoleStandaloneWorkstation = 0, + DsRole_RoleMemberWorkstation, + DsRole_RoleStandaloneServer, + DsRole_RoleMemberServer, + DsRole_RoleBackupDomainController, + DsRole_RolePrimaryDomainController +} DSROLE_MACHINE_ROLE; + +typedef enum _DSROLE_SERVER_STATE +{ + DsRoleServerUnknown = 0, + DsRoleServerPrimary, + DsRoleServerBackup +} DSROLE_SERVER_STATE; + +typedef enum _DSROLE_OPERATION_STATE +{ + DsRoleOperationIdle = 0, + DsRoleOperationActive, + DsRoleOperationNeedReboot +} DSROLE_OPERATION_STATE; + +typedef struct _DSROLE_PRIMARY_DOMAIN_INFO_BASIC +{ + DSROLE_MACHINE_ROLE MachineRole; + ULONG Flags; + LPWSTR DomainNameFlat; + LPWSTR DomainNameDns; + LPWSTR DomainForestName; + GUID DomainGuid; +} DSROLE_PRIMARY_DOMAIN_INFO_BASIC, *PDSROLE_PRIMARY_DOMAIN_INFO_BASIC; + +typedef struct _DSROLE_UPGRADE_STATUS_INFO +{ + ULONG OperationState; + DSROLE_SERVER_STATE PreviousServerState; +} DSROLE_UPGRADE_STATUS_INFO, *PDSROLE_UPGRADE_STATUS_INFO; + +typedef struct _DSROLE_OPERATION_STATE_INFO +{ + DSROLE_OPERATION_STATE OperationState; +} DSROLE_OPERATION_STATE_INFO, *PDSROLE_OPERATION_STATE_INFO; + +VOID WINAPI DsRoleFreeMemory(IN PVOID Buffer); +DWORD WINAPI DsRoleGetPrimaryDomainInformation(IN LPCWSTR lpServer OPTIONAL, IN DSROLE_PRIMARY_DOMAIN_INFO_LEVEL InfoLevel, OUT PBYTE *Buffer); + +#endif /* __WINE_DSROLE_H */