windows-nt/Source/XPSP1/NT/base/fs/dfs/dfsm/server/ftsup.hxx
2020-09-26 16:20:57 +08:00

188 lines
3.5 KiB
C++

//+----------------------------------------------------------------------------
//
// Copyright (C) 1997, Microsoft Corporation
//
// File: ftsup.hxx
//
// Contents: ftsup.c prototypes, etc
//
// Classes: CSites
//
// Functions:
//
// History: Dec 7, 1998 JHarper created
//
//-----------------------------------------------------------------------------
#ifndef _FTSUP_HXX
#define _FTSUP_HXX
typedef struct _DFS_VOLUME {
LPWSTR wszObjectName;
GUID idVolume;
LPWSTR wszPrefix;
LPWSTR wszShortPrefix;
ULONG dwType;
ULONG dwState;
LPWSTR wszComment;
ULONG dwTimeout;
FILETIME ftPrefix;
FILETIME ftState;
FILETIME ftComment;
ULONG dwVersion;
FILETIME *FtModification;
ULONG ReplCount;
ULONG AllocatedReplCount;
DFS_REPLICA_INFO *ReplicaInfo;
FILETIME *DelFtModification;
ULONG DelReplCount;
ULONG AllocatedDelReplCount;
DFS_REPLICA_INFO *DelReplicaInfo;
ULONG cbRecovery;
PBYTE pRecovery;
} DFS_VOLUME, *PDFS_VOLUME;
typedef struct _DFS_VOLUME_LIST {
ULONG Version;
ULONG VolCount;
ULONG AllocatedVolCount;
DFS_VOLUME *Volumes;
GUID SiteGuid;
ULONG SiteCount;
LIST_ENTRY SiteList;
} DFS_VOLUME_LIST, *PDFS_VOLUME_LIST;
DWORD
DfsGetDsBlob(
LPWSTR wszFtDfsName,
LPWSTR wszDcName,
ULONG *pcbBlob,
BYTE **ppBlob);
DWORD
DfsPutDsBlob(
LPWSTR wszFtDfsName,
LPWSTR wszDcName,
ULONG cbBlob,
BYTE *pBlob);
DWORD
DfsGetVolList(
ULONG cbBlob,
BYTE *pBlob,
PDFS_VOLUME_LIST pDfsVolList);
DWORD
DfsPutVolList(
ULONG *pcbBlob,
BYTE **ppBlob,
PDFS_VOLUME_LIST pDfsVolList);
VOID
DfsFreeVolList(
PDFS_VOLUME_LIST pDfsVolList);
VOID
DfsFreeVol(
PDFS_VOLUME pVol);
VOID
DfsFreeRepl(
PDFS_REPLICA_INFO pRepl);
DWORD
DfsRecoverVolList(
PDFS_VOLUME_LIST pDfsVolList);
DWORD
DfsVolDelete(
PDFS_VOLUME_LIST pDfsVolList,
ULONG iVol);
DWORD
DfsReplDeleteByIndex(
PDFS_VOLUME pVol,
ULONG iRepl);
DWORD
DfsReplDeleteByName(
PDFS_VOLUME pVol,
LPWSTR pwszServerName,
LPWSTR pwszShareName);
DWORD
DfsDelReplDelete(
PDFS_VOLUME pVol,
ULONG iDelRepl);
DWORD
SerializeReplicaList(
ULONG ReplCount,
DFS_REPLICA_INFO *pReplicaInfo,
FILETIME *pFtModification,
ULONG DelReplCount,
DFS_REPLICA_INFO *pDelReplicaInfo,
FILETIME *pDelFtModification,
ULONG *cBuffer,
PBYTE *ppBuffer);
DWORD
UnSerializeReplicaList(
ULONG *pReplCount,
ULONG *pAllocatedReplCount,
DFS_REPLICA_INFO **ppReplicaInfo,
FILETIME **ppFtModification,
BYTE **ppBuffer);
DWORD
SerializeReplica(
DFS_REPLICA_INFO *pDfsReplicaInfo,
FILETIME *pFtModfication,
PBYTE buffer,
ULONG size);
ULONG
GetReplicaMarshalSize(
DFS_REPLICA_INFO *pDfsReplicaInfo,
FILETIME *pFtModfication);
VOID
FreeLdapPkt(
LDAP_PKT *pldapPkt);
VOID
DfsDumpVolList(
PDFS_VOLUME_LIST pDfsVolList);
DWORD
DfsGetSiteTable(
PDFS_VOLUME_LIST VolList,
PLDAP_OBJECT LdapObject);
DWORD
DfsGetVolume(
PDFS_VOLUME pVolList,
PLDAP_OBJECT LdapObject);
DWORD
DfsRemoveRootReplica(
PDFS_VOLUME_LIST pDfsVolList,
LPWSTR RootName);
DWORD
GetNetStorageInfo(
PDFS_REPLICA_INFO pRepl,
LPDFS_STORAGE_INFO pInfo,
LPDWORD pcbInfo);
DWORD
GetNetInfoEx(
PDFS_VOLUME pDfsVol,
DWORD Level,
LPDFS_INFO_3 pInfo,
LPDWORD pcbInfo);
#endif _FTSUP_HXX