/*++ Copyright (c) 1997 - 1997 Microsoft Corporation Module Name: netsetup.h Abstract: Definitions and prototypes for the Net setup apis, for joining/unjoinging domains and promoting/demoting servers Author: Mac McLain (MacM) 19-Feb-1997 Environment: User mode only. Revision History: --*/ #ifndef __NETSETUP_H__ #define __NETSETUP_H__ #include #include #include #include #define NETSETUPP_CONNECT_IPC 0x00000001 #define NETSETUPP_DISCONNECT_IPC 0x00000002 #define NETSETUPP_NULL_SESSION_IPC 0x00000010 #define NETSETUPP_CREATE 0 #define NETSETUPP_DELETE 1 #define NETSETUPP_RENAME 2 #define NETSETUP_SVC_STOPPED 0x00000001 #define NETSETUP_SVC_STARTED 0x00000002 #define NETSETUP_SVC_ENABLED 0x00000004 #define NETSETUP_SVC_DISABLED 0x00000008 #define NETSETUP_SVC_MANUAL 0x00000010 #define NETSETUPP_SVC_NETLOGON 0x00000001 #define NETSETUPP_SVC_TIMESVC 0x00000002 #define NETSETUP_IGNORE_JOIN 0x80000000 // // Helpful macros // // // Determines whether a bit flag is turned on or not // #define FLAG_ON(flag,bits) ((flag) & (bits)) // // Determine whether the client is joined to a domain or not given the LSAs // primary domain information // #define IS_CLIENT_JOINED(plsapdinfo) \ ((plsapdinfo)->Sid != NULL && (plsapdinfo)->Name.Length != 0 ? TRUE : FALSE) // // Log routines // void NetSetuppOpenLog(); void NetSetuppCloseLog(); void NetpLogPrintHelper( IN LPCSTR Format, ...); #define NetpLog(x) NetpLogPrintHelper x // // Procedure forwards // NET_API_STATUS NET_API_FUNCTION NetpMachineValidToJoin( IN LPWSTR lpMachine, IN BOOL fJoiningDomain ); NET_API_STATUS NET_API_FUNCTION NetpChangeMachineName( IN LPWSTR lpCurrentMachine, IN LPWSTR lpNewHostName, IN LPWSTR lpDomain, IN LPWSTR lpAccount, IN LPWSTR lpPassword, IN DWORD fJoinOpts ); NET_API_STATUS NET_API_FUNCTION NetpUnJoinDomain( IN PPOLICY_PRIMARY_DOMAIN_INFO pPolicyPDI, IN LPWSTR lpAccount, IN LPWSTR lpPassword, IN DWORD fJoinOpts ); NET_API_STATUS NET_API_FUNCTION NetpGetLsaPrimaryDomain( IN LSA_HANDLE PolicyHandle, OPTIONAL IN LPWSTR lpServer, OPTIONAL OUT PPOLICY_PRIMARY_DOMAIN_INFO *ppPolicyPDI, #if(_WIN32_WINNT >= 0x0500) OUT PPOLICY_DNS_DOMAIN_INFO *ppPolicyDns, #endif OUT PLSA_HANDLE pPolicyHandle OPTIONAL ); NET_API_STATUS NET_API_FUNCTION NetpBrowserCheckDomain( IN LPWSTR NewDomainName ); NET_API_STATUS NET_API_FUNCTION NetpCheckNetBiosNameNotInUse( IN LPWSTR pszName, IN BOOLEAN MachineName, IN BOOLEAN UniqueName ); NET_API_STATUS NET_API_FUNCTION NetpCheckDomainNameIsValid( IN LPWSTR lpName, IN LPWSTR lpAccount, IN LPWSTR lpPassword, IN BOOL fShouldExist ); NET_API_STATUS NET_API_FUNCTION NetpValidateName( IN LPWSTR lpMachine, IN LPWSTR lpName, IN LPWSTR lpAccount, OPTIONAL IN LPWSTR lpPassword, OPTIONAL IN NETSETUP_NAME_TYPE NameType ); NET_API_STATUS NET_API_FUNCTION NetpGetJoinInformation( IN LPWSTR lpServer OPTIONAL, OUT LPWSTR *lpNameBuffer, OUT PNETSETUP_JOIN_STATUS BufferType ); NET_API_STATUS NET_API_FUNCTION NetpDoDomainJoin( IN LPWSTR lpMachine, IN LPWSTR lpDomain, IN LPWSTR lpMachineAccountOU, IN LPWSTR lpAccount, IN LPWSTR lpPassword, IN DWORD fJoinOpts ); NET_API_STATUS NET_API_FUNCTION NetpGetListOfJoinableOUs( IN LPWSTR Domain, IN LPWSTR Account, IN LPWSTR Password, OUT PULONG Count, OUT PWSTR **OUs ); NET_API_STATUS NET_API_FUNCTION NetpGetNewMachineName( OUT PWSTR *NewMachineName ); NET_API_STATUS NET_API_FUNCTION NetpSetDnsComputerNameAsRequired( IN PWSTR DnsDomainName ); EXTERN_C NET_API_STATUS NET_API_FUNCTION NetpUpgradePreNT5JoinInfo( VOID ); NET_API_STATUS NET_API_FUNCTION NetpSeparateUserAndDomain( IN LPCWSTR szUserAndDomain, OUT LPWSTR* pszUser, OUT LPWSTR* pszDomain ); NET_API_STATUS NET_API_FUNCTION NetpGetMachineAccountName( IN LPCWSTR szMachineName, OUT LPWSTR* pszMachineAccountName ); NET_API_STATUS NET_API_FUNCTION NetpManageIPCConnect( IN LPWSTR lpServer, IN LPWSTR lpAccount, IN LPWSTR lpPassword, IN ULONG fOptions ); NET_API_STATUS NET_API_FUNCTION NetpControlServices( IN DWORD SvcOpts, IN DWORD Services ); VOID NetpAvoidNetlogonSpnSet( BOOL AvoidSet ); NET_API_STATUS NetpQueryService( IN LPWSTR ServiceName, OUT SERVICE_STATUS *ServiceStatus, OUT LPQUERY_SERVICE_CONFIG *ServiceConfig ); DWORD NetpCrackNamesStatus2Win32Error( DWORD dwStatus ); #endif // __NETSETUP_H__