|
|
// Copyright (c) 1997-1999 Microsoft Corporation
//
// DS utility functions
//
// 3-11-99 sburns
#ifndef DSUTIL_HPP_INCLUDED
#define DSUTIL_HPP_INCLUDED
// Returns true if the dcpromo wizard UI is running on the local machine,
// false if not.
bool IsDcpromoRunning();
// Returns true if a domain controller for the domain can be contacted, false
// if not.
bool IsDomainReachable(const String& domainName);
// Returns true if the directory service is running on this computer, false
// if not.
bool IsDSRunning();
// Caller must unbind the handle with DsUnbind
HRESULT MyDsBind(const String& dcName, const String& dnsDomain, HANDLE& hds);
// username may be empty, which means use null, default credentials
HRESULT MyDsBindWithCred( const String& dcName, const String& dnsDomain, const String& username, const String& userDomain, const EncryptedString& password, HANDLE& hds);
// Caller must free info with ::NetApiBufferFree
HRESULT MyDsGetDcName( const TCHAR* machine, const String& domainName, ULONG flags, DOMAIN_CONTROLLER_INFO*& info);
// Caller must free info with ::NetApiBufferFree
HRESULT MyDsGetDcNameWithAccount( const TCHAR* machine, const String& accountName, ULONG allowedAccountFlags, const String& domainName, ULONG flags, DOMAIN_CONTROLLER_INFO*& info);
// Caller needs to delete info with (My)DsFreeDomainControllerInfo
HRESULT MyDsGetDomainControllerInfo( HANDLE hDs, const String& domainName, DWORD& cOut, DS_DOMAIN_CONTROLLER_INFO_1W*& info);
// Caller needs to delete info with (My)DsFreeDomainControllerInfo
HRESULT MyDsGetDomainControllerInfo( HANDLE hDs, const String& domainName, DWORD& cOut, DS_DOMAIN_CONTROLLER_INFO_2W*& info);
void MyDsFreeDomainControllerInfo( DWORD cOut, DS_DOMAIN_CONTROLLER_INFO_1W* info);
void MyDsFreeDomainControllerInfo( DWORD cOut, DS_DOMAIN_CONTROLLER_INFO_2W* info);
// Caller needs to delete info with ::DsRoleFreeMemory.
HRESULT MyDsRoleGetPrimaryDomainInformation( const TCHAR* machine, DSROLE_PRIMARY_DOMAIN_INFO_BASIC*& info);
// Caller needs to delete info with ::DsRoleFreeMemory.
HRESULT MyDsRoleGetPrimaryDomainInformation( const TCHAR* machine, DSROLE_OPERATION_STATE_INFO*& info);
// Caller needs to delete info with ::DsRoleFreeMemory.
HRESULT MyDsRoleGetPrimaryDomainInformation( const TCHAR* machine, DSROLE_UPGRADE_STATUS_INFO*& info);
#endif // DSUTIL_HPP_INCLUDED
|