204 lines
4.7 KiB
C++
204 lines
4.7 KiB
C++
|
|
#ifndef __DFS_INIT__
|
|
#define __DFS_INIT__
|
|
|
|
class DfsFolderReferralData;
|
|
class DfsServerSiteInfo;
|
|
class DfsStore;
|
|
class DfsSiteSupport;
|
|
class DfsRegistryStore;
|
|
class DfsADBlobStore;
|
|
class DfsEnterpriseStore;
|
|
class DfsDomainInformation;
|
|
|
|
#define DFS_LOCAL_NAMESPACE 1
|
|
#define DFS_CREATE_DIRECTORIES 2
|
|
#define DFS_MIGRATE 4
|
|
|
|
#define CheckDfsMigrate() (DfsServerGlobalData.Flags & DFS_MIGRATE)
|
|
#define CheckLocalNamespace() (DfsServerGlobalData.Flags & DFS_LOCAL_NAMESPACE)
|
|
#define DfsCheckCreateDirectories() (DfsServerGlobalData.Flags & DFS_CREATE_DIRECTORIES)
|
|
|
|
|
|
#define MAX_DFS_NAMESPACES 256
|
|
|
|
typedef struct _DFS_MACHINE_INFORMATION {
|
|
LPWSTR StaticComputerNameNetBIOS;
|
|
LPWSTR StaticComputerNameDnsFullyQualified;
|
|
LPWSTR StaticComputerNameDnsDomain;
|
|
}DFS_MACHINE_INFORMATION;
|
|
|
|
typedef struct _DFS_SERVER_GLOBAL_DATA {
|
|
ULONG Flags;
|
|
BOOL IsWorkGroup;
|
|
CRITICAL_SECTION DataLock;
|
|
DfsStore *pRegisteredStores;
|
|
LPWSTR HandledNamespace[MAX_DFS_NAMESPACES];
|
|
ULONG NumberOfNamespaces;
|
|
DfsFolderReferralData *LoadedList;
|
|
DfsSiteSupport *pSiteSupport;
|
|
DfsRegistryStore *pDfsRegistryStore;
|
|
DfsADBlobStore *pDfsADBlobStore;
|
|
DfsEnterpriseStore *pDfsEnterpriseStore;
|
|
DFS_MACHINE_INFORMATION DfsMachineInfo;
|
|
ULONG CacheFlushInterval;
|
|
|
|
BOOLEAN IsCluster;
|
|
|
|
BOOLEAN IsDc;
|
|
DfsDomainInformation *pDomainInfo;
|
|
UNICODE_STRING DomainNameFlat;
|
|
UNICODE_STRING DomainNameDns;
|
|
|
|
UNICODE_STRING DfsAdNameContext;
|
|
|
|
struct _DFS_PREFIX_TABLE *pDirectoryPrefixTable; // The directory namespace prefix table.
|
|
} DFS_SERVER_GLOBAL_DATA, *PDFS_SERVER_GLOBAL_DATA;
|
|
|
|
extern DFS_SERVER_GLOBAL_DATA DfsServerGlobalData;
|
|
|
|
#define DfsIsMachineDC() (DfsServerGlobalData.IsDc)
|
|
#define DfsIsMachineCluster() (DfsServerGlobalData.IsCluster)
|
|
#define DfsIsMachineWorkstation()(DfsServerGlobalData.IsWorkGroup)
|
|
|
|
|
|
LPWSTR
|
|
DfsGetDfsAdNameContextString();
|
|
|
|
|
|
DFSSTATUS
|
|
DfsSetDomainNameFlat(LPWSTR DomainNameFlatString);
|
|
|
|
DFSSTATUS
|
|
DfsSetDomainNameDns( LPWSTR DomainNameDnsString );
|
|
|
|
|
|
|
|
DFSSTATUS
|
|
DfsAcquireReadLock(
|
|
PCRITICAL_SECTION pLock);
|
|
|
|
DFSSTATUS
|
|
DfsAcquireWriteLock(
|
|
PCRITICAL_SECTION pLock);
|
|
|
|
|
|
#define DfsAcquireGlobalDataLock() DfsAcquireLock( &DfsServerGlobalData.DataLock )
|
|
#define DfsReleaseGlobalDataLock() DfsReleaseLock( &DfsServerGlobalData.DataLock )
|
|
|
|
#define DfsReleaseLock(_x) LeaveCriticalSection(_x)
|
|
#define DfsAcquireLock(_x) DfsAcquireWriteLock(_x)
|
|
|
|
|
|
#define CACHE_FLUSH_INTERVAL 15 * 60 * 1000
|
|
|
|
#define SCAVENGE_TIME DfsServerGlobalData.CacheFlushInterval
|
|
|
|
#define ACQUIRE_LOADED_LIST_LOCK()\
|
|
EnterCriticalSection(&DfsServerGlobalData.DataLock);
|
|
|
|
#define RELEASE_LOADED_LIST_LOCK()\
|
|
LeaveCriticalSection(&DfsServerGlobalData.DataLock);
|
|
|
|
|
|
|
|
extern LPWSTR DfsRegistryHostLocation;
|
|
extern LPWSTR DfsOldRegistryLocation;
|
|
extern LPWSTR DfsOldStandaloneChild;
|
|
|
|
extern LPWSTR DfsRegistryDfsLocation;
|
|
extern LPWSTR DfsNewRegistryLocation;
|
|
extern LPWSTR DfsStandaloneChild;
|
|
extern LPWSTR DfsADBlobChild;
|
|
extern LPWSTR DfsEnterpriseChild;
|
|
|
|
extern LPWSTR DfsRootShareValueName;
|
|
extern LPWSTR DfsLogicalShareValueName;
|
|
extern LPWSTR DfsFtDfsValueName;
|
|
extern LPWSTR DfsFtDfsConfigDNValueName;
|
|
|
|
|
|
VOID
|
|
DfsAddReferralDataToLoadedList(
|
|
DfsFolderReferralData *pRefData );
|
|
|
|
VOID
|
|
DfsRemoveReferralDataFromLoadedList(
|
|
DfsFolderReferralData **ppReferralData );
|
|
|
|
|
|
DFSSTATUS
|
|
DfsGetServerInfo (
|
|
PUNICODE_STRING pServer,
|
|
DfsServerSiteInfo **ppInfo );
|
|
|
|
DFSSTATUS
|
|
DfsReleaseServerInfo (
|
|
DfsServerSiteInfo *pInfo);
|
|
|
|
DFSSTATUS
|
|
DfsGetMachineName(
|
|
PUNICODE_STRING pName);
|
|
|
|
|
|
VOID
|
|
DfsReleaseMachineName(
|
|
PUNICODE_STRING pName );
|
|
|
|
|
|
|
|
DFSSTATUS
|
|
DfsGetDomainName(
|
|
PUNICODE_STRING pName);
|
|
|
|
VOID
|
|
DfsReleaseDomainName(
|
|
PUNICODE_STRING pName );
|
|
|
|
|
|
DFSSTATUS
|
|
DfsAddHandledNamespace(
|
|
LPWSTR Name,
|
|
BOOLEAN Migrate );
|
|
|
|
DFSSTATUS
|
|
DfsInitializeComputerInfo();
|
|
|
|
DFSSTATUS
|
|
DfsGetRegistryStore(
|
|
DfsRegistryStore **ppStore );
|
|
|
|
DFSSTATUS
|
|
DfsGetADBlobStore(
|
|
DfsADBlobStore **ppStore );
|
|
|
|
DFSSTATUS
|
|
DfsAddKnownDirectoryPath(
|
|
PUNICODE_STRING pDirectoryName,
|
|
PUNICODE_STRING pLogicalShare );
|
|
|
|
DFSSTATUS
|
|
DfsRemoveKnownDirectoryPath(
|
|
PUNICODE_STRING pDirectoryName,
|
|
PUNICODE_STRING pLogicalShare );
|
|
|
|
VOID
|
|
DfsReleaseDomainInfo (
|
|
DfsDomainInformation *pDomainInfo );
|
|
|
|
DFSSTATUS
|
|
DfsAcquireDomainInfo (
|
|
DfsDomainInformation **ppDomainInfo );
|
|
|
|
BOOLEAN
|
|
DfsIsNameContextDomainName( PUNICODE_STRING pName );
|
|
|
|
DFSSTATUS DfsGetBlobDCName( PUNICODE_STRING pName );
|
|
|
|
VOID DfsReleaseBlobDCName( PUNICODE_STRING pName );
|
|
|
|
BOOLEAN
|
|
DfsIsTargetCurrentMachine (PUNICODE_STRING pServer );
|
|
|
|
#endif __DFS_INIT__
|