home *** CD-ROM | disk | FTP | other *** search
- /*++
-
- Copyright (c) 1998-1999 Microsoft Corporation
-
- Module Name:
-
- netsetup.h
-
- Abstract:
-
- Definitions and prototypes for the Net setup apis, for joining/unjoinging
- domains and promoting/demoting servers
-
- Environment:
-
- User Mode - Win32
- Portable to any flat, 32-bit environment. (Uses Win32 typedefs.)
- Requires ANSI C extensions: slash-slash comments, long external names.
-
- Notes:
-
- --*/
-
- #ifndef __LMJOIN_H__
- #pragma option push -b -a8 -pc -A- /*P_O_Push*/
- #define __LMJOIN_H__
-
- #if _MSC_VER > 1000
- #pragma once
- #endif
-
- #ifdef __cplusplus
- extern "C" {
- #endif
-
- //
- // Types of name that can be validated
- //
- typedef enum _NETSETUP_NAME_TYPE {
-
- NetSetupUnknown = 0,
- NetSetupMachine,
- NetSetupWorkgroup,
- NetSetupDomain,
- NetSetupNonExistentDomain,
- #if(_WIN32_WINNT >= 0x0500)
- NetSetupDnsMachine
- #endif
-
- } NETSETUP_NAME_TYPE, *PNETSETUP_NAME_TYPE;
-
-
- //
- // Status of a workstation
- //
- typedef enum _NETSETUP_JOIN_STATUS {
-
- NetSetupUnknownStatus = 0,
- NetSetupUnjoined,
- NetSetupWorkgroupName,
- NetSetupDomainName
-
- } NETSETUP_JOIN_STATUS, *PNETSETUP_JOIN_STATUS;
-
- //
- // Flags to determine the behavior of the join/unjoin APIs
- //
- #define NETSETUP_JOIN_DOMAIN 0x00000001 // If not present, workgroup is joined
- #define NETSETUP_ACCT_CREATE 0x00000002 // Do the server side account creation/rename
- #define NETSETUP_ACCT_DELETE 0x00000004 // Delete the account when a domain is left
- #define NETSETUP_WIN9X_UPGRADE 0x00000010 // Invoked during upgrade of Windows 9x to
- // Windows NT
- #define NETSETUP_DOMAIN_JOIN_IF_JOINED 0x00000020 // Allow the client to join a new domain
- // even if it is already joined to a domain
- #define NETSETUP_JOIN_UNSECURE 0x00000040 // Performs an unsecure join
-
- #define NETSETUP_INSTALL_INVOCATION 0x00040000 // The APIs were invoked during install
-
- //
- // 0x80000000 is reserved for internal use only
- //
-
- //
- // Joins a machine to the domain.
- //
- NET_API_STATUS
- NET_API_FUNCTION
- NetJoinDomain(
- IN LPCWSTR lpServer OPTIONAL,
- IN LPCWSTR lpDomain,
- IN LPCWSTR lpAccountOU, OPTIONAL
- IN LPCWSTR lpAccount OPTIONAL,
- IN LPCWSTR lpPassword OPTIONAL,
- IN DWORD fJoinOptions
- );
-
- NET_API_STATUS
- NET_API_FUNCTION
- NetUnjoinDomain(
- IN LPCWSTR lpServer OPTIONAL,
- IN LPCWSTR lpAccount OPTIONAL,
- IN LPCWSTR lpPassword OPTIONAL,
- IN DWORD fUnjoinOptions
- );
-
- NET_API_STATUS
- NET_API_FUNCTION
- NetRenameMachineInDomain(
- IN LPCWSTR lpServer OPTIONAL,
- IN LPCWSTR lpNewMachineName OPTIONAL,
- IN LPCWSTR lpAccount OPTIONAL,
- IN LPCWSTR lpPassword OPTIONAL,
- IN DWORD fRenameOptions
- );
-
-
- //
- // Determine the validity of a name
- //
- NET_API_STATUS
- NET_API_FUNCTION
- NetValidateName(
- IN LPCWSTR lpServer OPTIONAL,
- IN LPCWSTR lpName,
- IN LPCWSTR lpAccount OPTIONAL,
- IN LPCWSTR lpPassword OPTIONAL,
- IN NETSETUP_NAME_TYPE NameType
- );
-
- //
- // Determines whether a workstation is joined to a domain or not
- //
- NET_API_STATUS
- NET_API_FUNCTION
- NetGetJoinInformation(
- IN LPCWSTR lpServer OPTIONAL,
- OUT LPWSTR *lpNameBuffer,
- OUT PNETSETUP_JOIN_STATUS BufferType
- );
-
-
- //
- // Determines the list of OUs that the client can create a machine account in
- //
- NET_API_STATUS
- NET_API_FUNCTION
- NetGetJoinableOUs(
- IN LPCWSTR lpServer OPTIONAL,
- IN LPCWSTR lpDomain,
- IN LPCWSTR lpAccount OPTIONAL,
- IN LPCWSTR lpPassword OPTIONAL,
- OUT DWORD *OUCount,
- OUT LPWSTR **OUs
- );
-
- #ifdef __cplusplus
- }
- #endif
-
- #pragma option pop /*P_O_Pop*/
- #endif // __LMJOIN_H__
-