--- /dev/null
+/*
+ * 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 <stdarg.h>
+
+#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;
+}
+@ 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)
--- /dev/null
+/*
+ * 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 */