You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
113 lines
2.5 KiB
113 lines
2.5 KiB
|
|
#ifndef __DFS_REFERRAL_H__
|
|
#define __DFS_REFERRAL_H__
|
|
|
|
#include "DfsGeneric.hxx"
|
|
#include "DfsReferralData.h"
|
|
#include "DfsStore.hxx"
|
|
#include "DfsRootFolder.hxx"
|
|
#include "DfsFolderReferralData.hxx"
|
|
|
|
|
|
|
|
typedef struct _REPLICA_COST_INFORMATION_
|
|
{
|
|
ULONG ReplicaCost;
|
|
DfsReplica * pReplica;
|
|
}REPLICA_COST_INFORMATION, *PREPLICA_COST_INFORMATION;
|
|
|
|
typedef struct _REFERRAL_INFORMATION
|
|
{
|
|
ULONG NumberOfReplicas;
|
|
ULONG TotalReplicaStringLength;
|
|
PUNICODE_STRING pUseTargetServer;
|
|
PUNICODE_STRING pUseTargetFolder;
|
|
REPLICA_COST_INFORMATION ReplicaCosts[1];
|
|
} REFERRAL_INFORMATION, *PREFERRAL_INFORMATION;
|
|
|
|
|
|
DFSSTATUS
|
|
DfsGetRootFolder(
|
|
PUNICODE_STRING pNameContext,
|
|
PUNICODE_STRING pShareName,
|
|
DfsRootFolder **ppRoot );
|
|
|
|
DFSSTATUS
|
|
DfsGetRootFolder(
|
|
PUNICODE_STRING pNameContext,
|
|
PUNICODE_STRING pShareName,
|
|
PUNICODE_STRING pRemains,
|
|
DfsRootFolder **ppRoot );
|
|
|
|
DFSSTATUS
|
|
DfsGetOnlyRootFolder(
|
|
DfsRootFolder **ppRoot );
|
|
|
|
DFSSTATUS
|
|
DfsLookupFolder(
|
|
PUNICODE_STRING pName,
|
|
PUNICODE_STRING pRemainingName,
|
|
DfsFolder **ppFolder );
|
|
|
|
DFSSTATUS
|
|
DfsGetReferralData(
|
|
PUNICODE_STRING pName,
|
|
PUNICODE_STRING pRemainingName,
|
|
DfsFolderReferralData **ppReferralData,
|
|
PBOOLEAN pCachehit );
|
|
|
|
|
|
DFSSTATUS
|
|
DfsGenerateReplicaCosts(
|
|
DfsFolderReferralData *pReferralData,
|
|
REPLICA_COST_INFORMATION **ppReplicaCosts,
|
|
ULONG NumReplicasToReturn,
|
|
LPWSTR SiteName);
|
|
|
|
VOID
|
|
DfsSortReplicas(
|
|
REPLICA_COST_INFORMATION * pReplicaCosts,
|
|
ULONG NumReplicas);
|
|
|
|
ULONG
|
|
DfsCalculateReplicaStringLength(
|
|
DfsReferralData *pReferralData,
|
|
PUNICODE_STRING pUseFolder,
|
|
ULONG NumReplicasToReturn);
|
|
|
|
DFSSTATUS
|
|
DfsExtractReferralData(
|
|
DfsReferralData *pReferralData,
|
|
DWORD NumReplicasToReturn,
|
|
ULONG CostLimit,
|
|
PUNICODE_STRING Name,
|
|
PUNICODE_STRING pUseFolder,
|
|
REPLICA_COST_INFORMATION * pReplicaCosts,
|
|
REFERRAL_HEADER ** ppReferralHeader);
|
|
|
|
DFSSTATUS
|
|
DfsGenerateReferral(
|
|
LPWSTR LinkName,
|
|
DfsSite *pSite,
|
|
DWORD NumReplicasToReturn,
|
|
ULONG CostLimit,
|
|
REFERRAL_HEADER ** ppReferralHeader);
|
|
|
|
VOID
|
|
DfsReleaseReferral(
|
|
REFERRAL_HEADER *pReferralHeader);
|
|
|
|
|
|
void DfshuffleGroup(
|
|
REPLICA_COST_INFORMATION * pReplicaCosts,
|
|
ULONG nStart,
|
|
ULONG nEnd);
|
|
|
|
DFSSTATUS
|
|
DfsGenerateCompatReferral(
|
|
LPWSTR LinkName,
|
|
DfsSite *pReferralSite,
|
|
REFERRAL_HEADER ** ppReferralHeader);
|
|
|
|
#endif //__DFS_REFERRAL_H__
|
|
|