Leaked source code of windows server 2003
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

#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__