| /** |
| * This file has no copyright assigned and is placed in the Public Domain. |
| * This file is part of the mingw-w64 runtime package. |
| * No warranty is given; refer to the file DISCLAIMER.PD within this package. |
| */ |
| #ifndef _LMDFS_ |
| #define _LMDFS_ |
| |
| #ifdef __cplusplus |
| extern "C" { |
| #endif |
| |
| #ifndef NET_API_FUNCTION |
| #define NET_API_FUNCTION WINAPI |
| #endif |
| |
| #define DFS_VOLUME_STATES 0xF |
| |
| #define DFS_VOLUME_STATE_OK 1 |
| #define DFS_VOLUME_STATE_INCONSISTENT 2 |
| #define DFS_VOLUME_STATE_OFFLINE 3 |
| #define DFS_VOLUME_STATE_ONLINE 4 |
| |
| #define DFS_VOLUME_STATE_RESYNCHRONIZE 0x10 |
| #define DFS_VOLUME_STATE_STANDBY 0x20 |
| |
| #define DFS_VOLUME_FLAVORS 0x0300 |
| |
| #define DFS_VOLUME_FLAVOR_UNUSED1 0x0000 |
| #define DFS_VOLUME_FLAVOR_STANDALONE 0x0100 |
| #define DFS_VOLUME_FLAVOR_AD_BLOB 0x0200 |
| #define DFS_STORAGE_FLAVOR_UNUSED2 0x0300 |
| |
| #define DFS_STORAGE_STATES 0xF |
| #define DFS_STORAGE_STATE_OFFLINE 1 |
| #define DFS_STORAGE_STATE_ONLINE 2 |
| #define DFS_STORAGE_STATE_ACTIVE 4 |
| |
| typedef enum _DFS_TARGET_PRIORITY_CLASS { |
| DfsInvalidPriorityClass = -1,DfsSiteCostNormalPriorityClass = 0,DfsGlobalHighPriorityClass,DfsSiteCostHighPriorityClass, |
| DfsSiteCostLowPriorityClass,DfsGlobalLowPriorityClass |
| } DFS_TARGET_PRIORITY_CLASS; |
| |
| typedef struct _DFS_TARGET_PRIORITY { |
| DFS_TARGET_PRIORITY_CLASS TargetPriorityClass; |
| USHORT TargetPriorityRank; |
| USHORT Reserved; |
| } DFS_TARGET_PRIORITY,*PDFS_TARGET_PRIORITY; |
| |
| typedef struct _DFS_INFO_1 { |
| LPWSTR EntryPath; |
| } DFS_INFO_1,*PDFS_INFO_1,*LPDFS_INFO_1; |
| |
| typedef struct _DFS_INFO_2 { |
| LPWSTR EntryPath; |
| LPWSTR Comment; |
| DWORD State; |
| DWORD NumberOfStorages; |
| } DFS_INFO_2,*PDFS_INFO_2,*LPDFS_INFO_2; |
| |
| typedef struct _DFS_STORAGE_INFO { |
| ULONG State; |
| LPWSTR ServerName; |
| LPWSTR ShareName; |
| } DFS_STORAGE_INFO,*PDFS_STORAGE_INFO,*LPDFS_STORAGE_INFO; |
| |
| #ifdef _WIN64 |
| typedef struct _DFS_STORAGE_INFO_0_32 { |
| ULONG State; |
| ULONG ServerName; |
| ULONG ShareName; |
| } DFS_STORAGE_INFO_0_32,*PDFS_STORAGE_INFO_0_32,*LPDFS_STORAGE_INFO_0_32; |
| #endif |
| |
| typedef struct _DFS_STORAGE_INFO_1 { |
| ULONG State; |
| LPWSTR ServerName; |
| LPWSTR ShareName; |
| DFS_TARGET_PRIORITY TargetPriority; |
| } DFS_STORAGE_INFO_1,*PDFS_STORAGE_INFO_1,*LPDFS_STORAGE_INFO_1; |
| |
| typedef struct _DFS_INFO_3 { |
| LPWSTR EntryPath; |
| LPWSTR Comment; |
| DWORD State; |
| DWORD NumberOfStorages; |
| LPDFS_STORAGE_INFO Storage; |
| } DFS_INFO_3,*PDFS_INFO_3,*LPDFS_INFO_3; |
| |
| #ifdef _WIN64 |
| typedef struct _DFS_INFO_3_32 { |
| ULONG EntryPath; |
| ULONG Comment; |
| DWORD State; |
| DWORD NumberOfStorages; |
| ULONG Storage; |
| } DFS_INFO_3_32,*PDFS_INFO_3_32,*LPDFS_INFO_3_32; |
| #endif |
| |
| typedef struct _DFS_INFO_4 { |
| LPWSTR EntryPath; |
| LPWSTR Comment; |
| DWORD State; |
| ULONG Timeout; |
| GUID Guid; |
| DWORD NumberOfStorages; |
| LPDFS_STORAGE_INFO Storage; |
| } DFS_INFO_4,*PDFS_INFO_4,*LPDFS_INFO_4; |
| |
| #ifdef _WIN64 |
| typedef struct _DFS_INFO_4_32 { |
| ULONG EntryPath; |
| ULONG Comment; |
| DWORD State; |
| ULONG Timeout; |
| GUID Guid; |
| DWORD NumberOfStorages; |
| ULONG Storage; |
| } DFS_INFO_4_32,*PDFS_INFO_4_32,*LPDFS_INFO_4_32; |
| #endif |
| |
| typedef struct _DFS_INFO_5 { |
| LPWSTR EntryPath; |
| LPWSTR Comment; |
| DWORD State; |
| ULONG Timeout; |
| GUID Guid; |
| ULONG PropertyFlags; |
| ULONG MetadataSize; |
| DWORD NumberOfStorages; |
| } DFS_INFO_5,*PDFS_INFO_5,*LPDFS_INFO_5; |
| |
| typedef struct _DFS_INFO_6 { |
| LPWSTR EntryPath; |
| LPWSTR Comment; |
| DWORD State; |
| ULONG Timeout; |
| GUID Guid; |
| ULONG PropertyFlags; |
| ULONG MetadataSize; |
| DWORD NumberOfStorages; |
| LPDFS_STORAGE_INFO_1 Storage; |
| } DFS_INFO_6,*PDFS_INFO_6,*LPDFS_INFO_6; |
| |
| typedef struct _DFS_INFO_7 { |
| GUID GenerationGuid; |
| } DFS_INFO_7,*PDFS_INFO_7,*LPDFS_INFO_7; |
| |
| #define DFS_PROPERTY_FLAG_INSITE_REFERRALS 0x00000001 |
| #define DFS_PROPERTY_FLAG_ROOT_SCALABILITY 0x00000002 |
| #define DFS_PROPERTY_FLAG_SITE_COSTING 0x00000004 |
| #define DFS_PROPERTY_FLAG_TARGET_FAILBACK 0x00000008 |
| #define DFS_PROPERTY_FLAG_CLUSTER_ENABLED 0x00000010 |
| #define DFS_PROPERTY_FLAG_ABDE 0x00000020 |
| |
| typedef struct _DFS_INFO_100 { |
| LPWSTR Comment; |
| } DFS_INFO_100,*PDFS_INFO_100,*LPDFS_INFO_100; |
| |
| typedef struct _DFS_INFO_101 { |
| DWORD State; |
| } DFS_INFO_101,*PDFS_INFO_101,*LPDFS_INFO_101; |
| |
| typedef struct _DFS_INFO_102 { |
| ULONG Timeout; |
| } DFS_INFO_102,*PDFS_INFO_102,*LPDFS_INFO_102; |
| |
| typedef struct _DFS_INFO_103 { |
| ULONG PropertyFlagMask; |
| ULONG PropertyFlags; |
| } DFS_INFO_103,*PDFS_INFO_103,*LPDFS_INFO_103; |
| |
| typedef struct _DFS_INFO_104 { |
| DFS_TARGET_PRIORITY TargetPriority; |
| } DFS_INFO_104,*PDFS_INFO_104,*LPDFS_INFO_104; |
| |
| typedef struct _DFS_INFO_105 { |
| LPWSTR Comment; |
| DWORD State; |
| ULONG Timeout; |
| ULONG PropertyFlagMask; |
| ULONG PropertyFlags; |
| } DFS_INFO_105,*PDFS_INFO_105,*LPDFS_INFO_105; |
| |
| typedef struct _DFS_INFO_106 { |
| DWORD State; |
| DFS_TARGET_PRIORITY TargetPriority; |
| } DFS_INFO_106,*PDFS_INFO_106,*LPDFS_INFO_106; |
| |
| #if (_WIN32_WINNT >= 0x0600) |
| #define DFS_NAMESPACE_CAPABILITY_ABDE 0x0000000000000001 |
| |
| typedef enum _DFS_NAMESPACE_VERSION_ORIGIN { |
| DFS_NAMESPACE_VERSION_ORIGIN_COMBINED = 0, |
| DFS_NAMESPACE_VERSION_ORIGIN_SERVER = 1, |
| DFS_NAMESPACE_VERSION_ORIGIN_DOMAIN = 2 |
| } DFS_NAMESPACE_VERSION_ORIGIN; |
| |
| typedef struct _DFS_SUPPORTED_NAMESPACE_VERSION_INFO { |
| ULONG DomainDfsMajorVersion; |
| ULONG NamespaceMinorVersion; |
| ULONGLONG DomainDfsCapabilities; |
| ULONG StandaloneDfsMajorVersion; |
| ULONG StandaloneDfsMinorVersion; |
| ULONGLONG StandaloneDfsCapabilities; |
| } DFS_SUPPORTED_NAMESPACE_VERSION_INFO, *PDFS_SUPPORTED_NAMESPACE_VERSION_INFO; |
| |
| typedef struct _DFS_INFO_8 { |
| LPWSTR EntryPath; |
| LPWSTR Comment; |
| DWORD State; |
| ULONG Timeout; |
| GUID Guid; |
| ULONG PropertyFlags; |
| ULONG MetadataSize; |
| ULONG SdLengthReserved; |
| PSECURITY_DESCRIPTOR pSecurityDescriptor; |
| DWORD NumberOfStorages; |
| } DFS_INFO_8, *PDFS_INFO_8; |
| |
| typedef struct _DFS_INFO_9 { |
| LPWSTR EntryPath; |
| LPWSTR Comment; |
| DWORD State; |
| ULONG Timeout; |
| GUID Guid; |
| ULONG PropertyFlags; |
| ULONG MetadataSize; |
| ULONG SdLengthReserved; |
| PSECURITY_DESCRIPTOR pSecurityDescriptor; |
| DWORD NumberOfStorages; |
| LPDFS_STORAGE_INFO_1 Storage; |
| } DFS_INFO_9, *PDFS_INFO_9; |
| |
| typedef struct _DFS_INFO_50 { |
| ULONG NamespaceMajorVersion; |
| ULONG NamespaceMinorVersion; |
| ULONGLONG NamespaceCapabilities; |
| } DFS_INFO_50, *PDFS_INFO_50; |
| |
| typedef struct _DFS_INFO_107 { |
| LPWSTR Comment; |
| DWORD State; |
| ULONG Timeout; |
| ULONG PropertyFlagMask; |
| ULONG PropertyFlags; |
| ULONG SdLengthReserved; |
| PSECURITY_DESCRIPTOR pSecurityDescriptor; |
| } DFS_INFO_107, *PDFS_INFO_107; |
| |
| typedef struct _DFS_INFO_150 { |
| ULONG SdLengthReserved; |
| PSECURITY_DESCRIPTOR pSecurityDescriptor; |
| } DFS_INFO_150, *PDFS_INFO_150; |
| |
| NET_API_STATUS NET_API_FUNCTION NetDfsAddRootTarget( |
| LPWSTR pDfsPath, |
| LPWSTR pTargetPath, |
| ULONG MajorVersion, |
| LPWSTR pComment, |
| ULONG Flags |
| ); |
| |
| NET_API_STATUS NET_API_FUNCTION NetDfsGetSupportedNamespaceVersion( |
| DFS_NAMESPACE_VERSION_ORIGIN Origin, |
| PWSTR pName, |
| PDFS_SUPPORTED_NAMESPACE_VERSION_INFO *ppVersionInfo |
| ); |
| |
| NET_API_STATUS NET_API_FUNCTION NetDfsRemoveRootTarget( |
| LPWSTR pDfsPath, |
| LPWSTR pTargetPath, |
| ULONG Flags |
| ); |
| |
| NET_API_STATUS WINAPI NetShareDelEx( |
| LMSTR servername, |
| DWORD level, |
| LPBYTE buf |
| ); |
| |
| #endif /*(_WIN32_WINNT >= 0x0600)*/ |
| |
| typedef struct _DFS_INFO_200 { |
| LPWSTR FtDfsName; |
| } DFS_INFO_200,*PDFS_INFO_200,*LPDFS_INFO_200; |
| |
| typedef struct _DFS_INFO_300 { |
| DWORD Flags; |
| LPWSTR DfsName; |
| } DFS_INFO_300,*PDFS_INFO_300,*LPDFS_INFO_300; |
| |
| #define DFS_ADD_VOLUME 1 |
| #define DFS_RESTORE_VOLUME 2 |
| |
| NET_API_STATUS WINAPI NetDfsAdd(LPWSTR DfsEntryPath,LPWSTR ServerName,LPWSTR ShareName,LPWSTR Comment,DWORD Flags); |
| NET_API_STATUS WINAPI NetDfsAddStdRoot(LPWSTR ServerName,LPWSTR RootShare,LPWSTR Comment,DWORD Flags); |
| NET_API_STATUS WINAPI NetDfsRemoveStdRoot(LPWSTR ServerName,LPWSTR RootShare,DWORD Flags); |
| NET_API_STATUS WINAPI NetDfsAddFtRoot(LPWSTR ServerName,LPWSTR RootShare,LPWSTR FtDfsName,LPWSTR Comment,DWORD Flags); |
| NET_API_STATUS WINAPI NetDfsRemoveFtRoot(LPWSTR ServerName,LPWSTR RootShare,LPWSTR FtDfsName,DWORD Flags); |
| NET_API_STATUS WINAPI NetDfsRemoveFtRootForced(LPWSTR DomainName,LPWSTR ServerName,LPWSTR RootShare,LPWSTR FtDfsName,DWORD Flags); |
| NET_API_STATUS WINAPI NetDfsManagerInitialize(LPWSTR ServerName,DWORD Flags); |
| NET_API_STATUS WINAPI NetDfsAddStdRootForced(LPWSTR ServerName,LPWSTR RootShare,LPWSTR Comment,LPWSTR Store); |
| NET_API_STATUS WINAPI NetDfsGetDcAddress(LPWSTR ServerName,LPWSTR *DcIpAddress,BOOLEAN *IsRoot,ULONG *Timeout); |
| |
| #define NET_DFS_SETDC_FLAGS 0x00000000 |
| #define NET_DFS_SETDC_TIMEOUT 0x00000001 |
| #define NET_DFS_SETDC_INITPKT 0x00000002 |
| |
| typedef struct { |
| ULONG SiteFlags; |
| LPWSTR SiteName; |
| } DFS_SITENAME_INFO,*PDFS_SITENAME_INFO,*LPDFS_SITENAME_INFO; |
| |
| #define DFS_SITE_PRIMARY 0x1 |
| |
| typedef struct { |
| ULONG cSites; |
| DFS_SITENAME_INFO Site[1]; |
| } DFS_SITELIST_INFO,*PDFS_SITELIST_INFO,*LPDFS_SITELIST_INFO; |
| |
| NET_API_STATUS WINAPI NetDfsRemove(LPWSTR DfsEntryPath,LPWSTR ServerName,LPWSTR ShareName); |
| NET_API_STATUS WINAPI NetDfsEnum(LPWSTR DfsName,DWORD Level,DWORD PrefMaxLen,LPBYTE *Buffer,LPDWORD EntriesRead,LPDWORD ResumeHandle); |
| NET_API_STATUS WINAPI NetDfsGetInfo(LPWSTR DfsEntryPath,LPWSTR ServerName,LPWSTR ShareName,DWORD Level,LPBYTE *Buffer); |
| NET_API_STATUS WINAPI NetDfsSetInfo(LPWSTR DfsEntryPath,LPWSTR ServerName,LPWSTR ShareName,DWORD Level,LPBYTE Buffer); |
| NET_API_STATUS WINAPI NetDfsGetClientInfo(LPWSTR DfsEntryPath,LPWSTR ServerName,LPWSTR ShareName,DWORD Level,LPBYTE *Buffer); |
| NET_API_STATUS WINAPI NetDfsSetClientInfo(LPWSTR DfsEntryPath,LPWSTR ServerName,LPWSTR ShareName,DWORD Level,LPBYTE Buffer); |
| NET_API_STATUS WINAPI NetDfsMove(LPWSTR DfsEntryPath,LPWSTR DfsNewEntryPath,ULONG Flags); |
| |
| #define DFS_MOVE_FLAG_REPLACE_IF_EXISTS 0x00000001 |
| |
| NET_API_STATUS WINAPI NetDfsRename(LPWSTR Path,LPWSTR NewPath); |
| NET_API_STATUS WINAPI NetDfsGetSecurity(LPWSTR DfsEntryPath,SECURITY_INFORMATION SecurityInformation,PSECURITY_DESCRIPTOR *ppSecurityDescriptor,LPDWORD lpcbSecurityDescriptor); |
| NET_API_STATUS WINAPI NetDfsSetSecurity(LPWSTR DfsEntryPath,SECURITY_INFORMATION SecurityInformation,PSECURITY_DESCRIPTOR pSecurityDescriptor); |
| NET_API_STATUS WINAPI NetDfsGetStdContainerSecurity(LPWSTR MachineName,SECURITY_INFORMATION SecurityInformation,PSECURITY_DESCRIPTOR *ppSecurityDescriptor,LPDWORD lpcbSecurityDescriptor); |
| NET_API_STATUS WINAPI NetDfsSetStdContainerSecurity(LPWSTR MachineName,SECURITY_INFORMATION SecurityInformation,PSECURITY_DESCRIPTOR pSecurityDescriptor); |
| NET_API_STATUS WINAPI NetDfsGetFtContainerSecurity(LPWSTR DomainName,SECURITY_INFORMATION SecurityInformation,PSECURITY_DESCRIPTOR *ppSecurityDescriptor,LPDWORD lpcbSecurityDescriptor); |
| NET_API_STATUS WINAPI NetDfsSetFtContainerSecurity(LPWSTR DomainName,SECURITY_INFORMATION SecurityInformation,PSECURITY_DESCRIPTOR pSecurityDescriptor); |
| |
| #ifdef __cplusplus |
| } |
| #endif |
| #endif |