windows-nt/Source/XPSP1/NT/base/fs/remotefs/dfs/inc/dfsadsi.h

105 lines
2.2 KiB
C
Raw Permalink Normal View History

2020-09-26 03:20:57 -05:00
typedef struct _DFS_LINKROOT_ENUM_INFO {
LPWSTR GuidString;
UNICODE_STRING Name;
} DFS_LINKROOT_ENUM_INFO, *PDFS_LINKROOT_ENUM_INFO;
typedef struct _DFS_LINK_ENUMERATION {
int NumberOfLinks;
DFS_LINKROOT_ENUM_INFO Info[];
} DFS_LINK_ENUMERATION, *PDFS_LINK_ENUMERATION;
typedef struct _DFS_ROOT_ENUMERATION {
int NumberOfRoots;
DFS_LINKROOT_ENUM_INFO Info[];
} DFS_ROOT_ENUMERATION, *PDFS_ROOT_ENUMERATION;
typedef struct _DFS_ADSI_REPLICA_LIST {
PUNICODE_STRING pServerName;
PUNICODE_STRING pShareName;
struct _DFS_ADSI_REPLICA_LIST *pNext;
} DFS_ADSI_REPLICA_LIST, *PDFS_ADSI_REPLICA_LIST;
typedef struct _DFS_ADSI_ROOT {
LPWSTR GuidString;
PDFS_ADSI_REPLICA_LIST Replicas;
} DFS_ADSI_ROOT, *PDFS_ADSI_ROOT;
typedef struct _DFS_ADSI_LINK {
LPWSTR GuidString;
PDFS_ADSI_REPLICA_LIST Replicas;
} DFS_ADSI_LINK, *PDFS_ADSI_LINK;
DFSSTATUS
DfsAdsiGetRoot(
LPWSTR Namespace,
PDFS_ADSI_ROOT *ppAdRootObject
);
DFSSTATUS
DfsAdsiGetLink(
LPWSTR Namespace,
PDFS_ADSI_LINK *ppAdLinkObject
);
DFSSTATUS
DfsAdsiFreeRoot(
PDFS_ADSI_ROOT pAdRootObject
);
DFSSTATUS
DfsAdsiEnumerateLinks(
LPWSTR Namespace,
PDFS_LINK_ENUMERATION *ppLinks
);
DFSSTATUS
DfsAdsiFreeLinkEnumeration(
PDFS_LINK_ENUMERATION pLinks
);
DFSSTATUS
DfsAdsiEnumerateRoots(
LPWSTR Namespace,
PDFS_ROOT_ENUMERATION *ppRoots
);
DFSSTATUS
DfsAdsiFreeRootEnumeration(
PDFS_ROOT_ENUMERATION pRoots
);
//
// Macros for accessing ADSI structures
//
#define GET_GUID(Object) Object.DfsAdsiHeader.Guid
#define GET_REPLICAS(Object) Object.Replicas
#define GET_ROOT_NAME(Object) Object.RootName
#define GET_LINK_NAME(LinkObject) LinkObject.LinkName
#define GET_POLICY(Object) Object.Policy
#define NUMBER_OF_LINKS(pLinkEnumeration) pLinkEnumeration->NumberOfLinks
#define NUMBER_OF_ROOTS(pRootEnumeration) pRootEnumeration->NumberOfRoots
#define LINK_GUID_STRING(pLink, index) pLink->Info[index].GuidString
#define LINK_NAME(pLink, index) pLink->Info[index].Name
#define ROOT_NAME(pLink, index) pLink->Info[index].Name.Buffer
#define GET_ROOT_REPLICAS(pRoot) pRoot->Replicas
#define GET_LINK_REPLICAS(pLink) pLink->Replicas