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.
 
 
 
 
 
 

162 lines
4.0 KiB

#ifndef __DFS_UTIL_H__
#define __DFS_UTIL_H__
#include "lm.h"
#include "lmdfs.h"
#include <netdfs.h>
#include <dfsprefix.h>
#include <DfsServerLibrary.hxx>
#include <dfsmisc.h>
#include "Struct.hxx"
#include "misc.hxx"
typedef enum _DFS_API_MODE {
MODE_INVALID = 0,
MODE_API,
MODE_DIRECT,
MODE_EITHER
} DFS_API_MODE;
typedef struct _DFS_UPDATE_STATISTICS
{
ULONG LinkAdded;
ULONG LinkDeleted;
ULONG LinkModified;
ULONG TargetAdded;
ULONG TargetDeleted;
ULONG TargetModified;
ULONG ApiCount;
} DFS_UPDATE_STATISTICS, *PDFS_UPDATE_STATISTICS;
class DfsPathName;
class DfsRoot;
class DfsLink;
class DfsTarget;
DFSSTATUS
DfsView (
LPWSTR RootName,
FILE *Out,
BOOLEAN ScriptOut );
DumpDfsInfo(
DWORD Entry,
DWORD Level,
PVOID pBuf,
FILE *Out);
DFSSTATUS
DfsRenameLinksToDomain(
IN DfsPathName *pDfsPath,
IN LPWSTR OldDomainName,
IN LPWSTR NewDomainName);
DFSSTATUS
SetInfoReSynchronize(
LPWSTR ServerName,
LPWSTR ShareName);
VOID
AddToCost(
LPWSTR Name,
BOOLEAN IsLink
);
DFSSTATUS
DfsReadDocument(
LPWSTR FileToRead,
DfsRoot **ppRoot );
DFSSTATUS
SetDfsRoots(
DfsRoot *pRoot,
DfsRoot *pImportRoot,
HANDLE FileHandle,
BOOLEAN NoBackup);
DFSSTATUS
MergeDfsRoots(
DfsRoot *pRoot,
DfsRoot *pImportRoot,
HANDLE FileHandle,
BOOLEAN NoBackup);
DFSSTATUS
VerifyDfsRoots(
DfsRoot *pRoot,
DfsRoot *pImportRoot );
DFSSTATUS
DumpRoots (DfsRoot *pRoot, HANDLE Handle, BOOLEAN x);
DFSSTATUS
DfsBuildNameSpaceInformation ( DfsPathName *pNameSpace,
LPWSTR UseDC,
DFS_API_MODE Mode,
BOOLEAN SiteAware,
DfsRoot **ppRoot);
extern BOOLEAN fSwDirect;
extern BOOLEAN fSwDebug;
extern BOOLEAN fSwVerbose;
extern BOOLEAN fSwSet, fSwMerge;
extern BOOLEAN fSwVerify;
extern BOOLEAN fSwBlobSize;
extern DfsPathName *gDfsNameSpace;
extern BOOLEAN CommandSucceeded;
extern BOOLEAN ErrorDisplayed;
extern FILE *DebugOut;
//
// DirectMode bypasses NetDfs* calls to the remote dfssvc.exe
// server process and calls Active Directory directly. As a result
// it bypasses the AD Blob Cache on the server to create a fast
// path for importing deep DFS trees.
//
//
// DirectMode bypasses NetDfs* calls to the remote dfssvc.exe
// server process and calls Active Directory directly. As a result
// it bypasses the AD Blob Cache on the server to create a fast
// path for importing deep DFS trees.
//
#define DfsApiRemove( md, x, y, z ) (((md) == MODE_DIRECT) ? \
DfsRemove( (x), (y), (z) ) : \
NetDfsRemove( (x), (y), (z) ))
#define DfsApiAdd( md, Rt, Sr, Sh, Cm, Fl ) (((md) == MODE_DIRECT) ? \
DfsAdd( (Rt), (Sr), (Sh), (Cm), (Fl) ) : \
NetDfsAdd( (Rt), (Sr), (Sh), (Cm), (Fl) ))
#define DfsApiSetInfo( md, Rt, Sr, Sh, Cm, Fl ) (((md) == MODE_DIRECT) ? \
DfsSetInfo( (Rt), (Sr), (Sh), (Cm), (LPBYTE)(Fl) ) : \
NetDfsSetInfo( (Rt), (Sr), (Sh), (Cm), (LPBYTE)(&((*Fl)->Info101)) ))
#define DfsApiEnumerate( md, Nm, Lv, Ml, Bf, Er, Rh ) (((md) == MODE_DIRECT) ? \
DfsEnum( (Nm), (Lv), (Ml), (Bf), (Er), (Rh) ) : \
NetDfsEnum( (Nm), (Lv), (Ml), (Bf), (Er), (Rh) ))
#define DfsFreeApiBuffer( x ) ((fSwDirect == TRUE) ? \
MIDL_user_free( x ) : \
NetApiBufferFree( x ))
#define DebugInformation(x) if (fSwVerbose) ShowDebugInformation x
#define ShowInformation(x) ShowVerboseInformation x
#endif // __DFS_UTIL_H__