| 1 |
/** |
| 2 |
* This file has no copyright assigned and is placed in the Public Domain. |
| 3 |
* This file is part of the mingw-w64 runtime package. |
| 4 |
* No warranty is given; refer to the file DISCLAIMER.PD within this package. |
| 5 |
*/ |
| 6 |
#ifndef _LMDFS_ |
| 7 |
#define _LMDFS_ |
| 8 |
|
| 9 |
#ifdef __cplusplus |
| 10 |
extern "C" { |
| 11 |
#endif |
| 12 |
|
| 13 |
#ifndef NET_API_FUNCTION |
| 14 |
#define NET_API_FUNCTION WINAPI |
| 15 |
#endif |
| 16 |
|
| 17 |
#define DFS_VOLUME_STATES 0xF |
| 18 |
|
| 19 |
#define DFS_VOLUME_STATE_OK 1 |
| 20 |
#define DFS_VOLUME_STATE_INCONSISTENT 2 |
| 21 |
#define DFS_VOLUME_STATE_OFFLINE 3 |
| 22 |
#define DFS_VOLUME_STATE_ONLINE 4 |
| 23 |
|
| 24 |
#define DFS_VOLUME_STATE_RESYNCHRONIZE 0x10 |
| 25 |
#define DFS_VOLUME_STATE_STANDBY 0x20 |
| 26 |
|
| 27 |
#define DFS_VOLUME_FLAVORS 0x0300 |
| 28 |
|
| 29 |
#define DFS_VOLUME_FLAVOR_UNUSED1 0x0000 |
| 30 |
#define DFS_VOLUME_FLAVOR_STANDALONE 0x0100 |
| 31 |
#define DFS_VOLUME_FLAVOR_AD_BLOB 0x0200 |
| 32 |
#define DFS_STORAGE_FLAVOR_UNUSED2 0x0300 |
| 33 |
|
| 34 |
#define DFS_STORAGE_STATES 0xF |
| 35 |
#define DFS_STORAGE_STATE_OFFLINE 1 |
| 36 |
#define DFS_STORAGE_STATE_ONLINE 2 |
| 37 |
#define DFS_STORAGE_STATE_ACTIVE 4 |
| 38 |
|
| 39 |
typedef enum _DFS_TARGET_PRIORITY_CLASS { |
| 40 |
DfsInvalidPriorityClass = -1,DfsSiteCostNormalPriorityClass = 0,DfsGlobalHighPriorityClass,DfsSiteCostHighPriorityClass, |
| 41 |
DfsSiteCostLowPriorityClass,DfsGlobalLowPriorityClass |
| 42 |
} DFS_TARGET_PRIORITY_CLASS; |
| 43 |
|
| 44 |
typedef struct _DFS_TARGET_PRIORITY { |
| 45 |
DFS_TARGET_PRIORITY_CLASS TargetPriorityClass; |
| 46 |
USHORT TargetPriorityRank; |
| 47 |
USHORT Reserved; |
| 48 |
} DFS_TARGET_PRIORITY,*PDFS_TARGET_PRIORITY; |
| 49 |
|
| 50 |
typedef struct _DFS_INFO_1 { |
| 51 |
LPWSTR EntryPath; |
| 52 |
} DFS_INFO_1,*PDFS_INFO_1,*LPDFS_INFO_1; |
| 53 |
|
| 54 |
typedef struct _DFS_INFO_2 { |
| 55 |
LPWSTR EntryPath; |
| 56 |
LPWSTR Comment; |
| 57 |
DWORD State; |
| 58 |
DWORD NumberOfStorages; |
| 59 |
} DFS_INFO_2,*PDFS_INFO_2,*LPDFS_INFO_2; |
| 60 |
|
| 61 |
typedef struct _DFS_STORAGE_INFO { |
| 62 |
ULONG State; |
| 63 |
LPWSTR ServerName; |
| 64 |
LPWSTR ShareName; |
| 65 |
} DFS_STORAGE_INFO,*PDFS_STORAGE_INFO,*LPDFS_STORAGE_INFO; |
| 66 |
|
| 67 |
#ifdef _WIN64 |
| 68 |
typedef struct _DFS_STORAGE_INFO_0_32 { |
| 69 |
ULONG State; |
| 70 |
ULONG ServerName; |
| 71 |
ULONG ShareName; |
| 72 |
} DFS_STORAGE_INFO_0_32,*PDFS_STORAGE_INFO_0_32,*LPDFS_STORAGE_INFO_0_32; |
| 73 |
#endif |
| 74 |
|
| 75 |
typedef struct _DFS_STORAGE_INFO_1 { |
| 76 |
ULONG State; |
| 77 |
LPWSTR ServerName; |
| 78 |
LPWSTR ShareName; |
| 79 |
DFS_TARGET_PRIORITY TargetPriority; |
| 80 |
} DFS_STORAGE_INFO_1,*PDFS_STORAGE_INFO_1,*LPDFS_STORAGE_INFO_1; |
| 81 |
|
| 82 |
typedef struct _DFS_INFO_3 { |
| 83 |
LPWSTR EntryPath; |
| 84 |
LPWSTR Comment; |
| 85 |
DWORD State; |
| 86 |
DWORD NumberOfStorages; |
| 87 |
LPDFS_STORAGE_INFO Storage; |
| 88 |
} DFS_INFO_3,*PDFS_INFO_3,*LPDFS_INFO_3; |
| 89 |
|
| 90 |
#ifdef _WIN64 |
| 91 |
typedef struct _DFS_INFO_3_32 { |
| 92 |
ULONG EntryPath; |
| 93 |
ULONG Comment; |
| 94 |
DWORD State; |
| 95 |
DWORD NumberOfStorages; |
| 96 |
ULONG Storage; |
| 97 |
} DFS_INFO_3_32,*PDFS_INFO_3_32,*LPDFS_INFO_3_32; |
| 98 |
#endif |
| 99 |
|
| 100 |
typedef struct _DFS_INFO_4 { |
| 101 |
LPWSTR EntryPath; |
| 102 |
LPWSTR Comment; |
| 103 |
DWORD State; |
| 104 |
ULONG Timeout; |
| 105 |
GUID Guid; |
| 106 |
DWORD NumberOfStorages; |
| 107 |
LPDFS_STORAGE_INFO Storage; |
| 108 |
} DFS_INFO_4,*PDFS_INFO_4,*LPDFS_INFO_4; |
| 109 |
|
| 110 |
#ifdef _WIN64 |
| 111 |
typedef struct _DFS_INFO_4_32 { |
| 112 |
ULONG EntryPath; |
| 113 |
ULONG Comment; |
| 114 |
DWORD State; |
| 115 |
ULONG Timeout; |
| 116 |
GUID Guid; |
| 117 |
DWORD NumberOfStorages; |
| 118 |
ULONG Storage; |
| 119 |
} DFS_INFO_4_32,*PDFS_INFO_4_32,*LPDFS_INFO_4_32; |
| 120 |
#endif |
| 121 |
|
| 122 |
typedef struct _DFS_INFO_5 { |
| 123 |
LPWSTR EntryPath; |
| 124 |
LPWSTR Comment; |
| 125 |
DWORD State; |
| 126 |
ULONG Timeout; |
| 127 |
GUID Guid; |
| 128 |
ULONG PropertyFlags; |
| 129 |
ULONG MetadataSize; |
| 130 |
DWORD NumberOfStorages; |
| 131 |
} DFS_INFO_5,*PDFS_INFO_5,*LPDFS_INFO_5; |
| 132 |
|
| 133 |
typedef struct _DFS_INFO_6 { |
| 134 |
LPWSTR EntryPath; |
| 135 |
LPWSTR Comment; |
| 136 |
DWORD State; |
| 137 |
ULONG Timeout; |
| 138 |
GUID Guid; |
| 139 |
ULONG PropertyFlags; |
| 140 |
ULONG MetadataSize; |
| 141 |
DWORD NumberOfStorages; |
| 142 |
LPDFS_STORAGE_INFO_1 Storage; |
| 143 |
} DFS_INFO_6,*PDFS_INFO_6,*LPDFS_INFO_6; |
| 144 |
|
| 145 |
typedef struct _DFS_INFO_7 { |
| 146 |
GUID GenerationGuid; |
| 147 |
} DFS_INFO_7,*PDFS_INFO_7,*LPDFS_INFO_7; |
| 148 |
|
| 149 |
#define DFS_PROPERTY_FLAG_INSITE_REFERRALS 0x00000001 |
| 150 |
#define DFS_PROPERTY_FLAG_ROOT_SCALABILITY 0x00000002 |
| 151 |
#define DFS_PROPERTY_FLAG_SITE_COSTING 0x00000004 |
| 152 |
#define DFS_PROPERTY_FLAG_TARGET_FAILBACK 0x00000008 |
| 153 |
#define DFS_PROPERTY_FLAG_CLUSTER_ENABLED 0x00000010 |
| 154 |
#define DFS_PROPERTY_FLAG_ABDE 0x00000020 |
| 155 |
|
| 156 |
typedef struct _DFS_INFO_100 { |
| 157 |
LPWSTR Comment; |
| 158 |
} DFS_INFO_100,*PDFS_INFO_100,*LPDFS_INFO_100; |
| 159 |
|
| 160 |
typedef struct _DFS_INFO_101 { |
| 161 |
DWORD State; |
| 162 |
} DFS_INFO_101,*PDFS_INFO_101,*LPDFS_INFO_101; |
| 163 |
|
| 164 |
typedef struct _DFS_INFO_102 { |
| 165 |
ULONG Timeout; |
| 166 |
} DFS_INFO_102,*PDFS_INFO_102,*LPDFS_INFO_102; |
| 167 |
|
| 168 |
typedef struct _DFS_INFO_103 { |
| 169 |
ULONG PropertyFlagMask; |
| 170 |
ULONG PropertyFlags; |
| 171 |
} DFS_INFO_103,*PDFS_INFO_103,*LPDFS_INFO_103; |
| 172 |
|
| 173 |
typedef struct _DFS_INFO_104 { |
| 174 |
DFS_TARGET_PRIORITY TargetPriority; |
| 175 |
} DFS_INFO_104,*PDFS_INFO_104,*LPDFS_INFO_104; |
| 176 |
|
| 177 |
typedef struct _DFS_INFO_105 { |
| 178 |
LPWSTR Comment; |
| 179 |
DWORD State; |
| 180 |
ULONG Timeout; |
| 181 |
ULONG PropertyFlagMask; |
| 182 |
ULONG PropertyFlags; |
| 183 |
} DFS_INFO_105,*PDFS_INFO_105,*LPDFS_INFO_105; |
| 184 |
|
| 185 |
typedef struct _DFS_INFO_106 { |
| 186 |
DWORD State; |
| 187 |
DFS_TARGET_PRIORITY TargetPriority; |
| 188 |
} DFS_INFO_106,*PDFS_INFO_106,*LPDFS_INFO_106; |
| 189 |
|
| 190 |
#if (_WIN32_WINNT >= 0x0600) |
| 191 |
#define DFS_NAMESPACE_CAPABILITY_ABDE 0x0000000000000001 |
| 192 |
|
| 193 |
typedef enum _DFS_NAMESPACE_VERSION_ORIGIN { |
| 194 |
DFS_NAMESPACE_VERSION_ORIGIN_COMBINED = 0, |
| 195 |
DFS_NAMESPACE_VERSION_ORIGIN_SERVER = 1, |
| 196 |
DFS_NAMESPACE_VERSION_ORIGIN_DOMAIN = 2 |
| 197 |
} DFS_NAMESPACE_VERSION_ORIGIN; |
| 198 |
|
| 199 |
typedef struct _DFS_SUPPORTED_NAMESPACE_VERSION_INFO { |
| 200 |
ULONG DomainDfsMajorVersion; |
| 201 |
ULONG NamespaceMinorVersion; |
| 202 |
ULONGLONG DomainDfsCapabilities; |
| 203 |
ULONG StandaloneDfsMajorVersion; |
| 204 |
ULONG StandaloneDfsMinorVersion; |
| 205 |
ULONGLONG StandaloneDfsCapabilities; |
| 206 |
} DFS_SUPPORTED_NAMESPACE_VERSION_INFO, *PDFS_SUPPORTED_NAMESPACE_VERSION_INFO; |
| 207 |
|
| 208 |
typedef struct _DFS_INFO_8 { |
| 209 |
LPWSTR EntryPath; |
| 210 |
LPWSTR Comment; |
| 211 |
DWORD State; |
| 212 |
ULONG Timeout; |
| 213 |
GUID Guid; |
| 214 |
ULONG PropertyFlags; |
| 215 |
ULONG MetadataSize; |
| 216 |
ULONG SdLengthReserved; |
| 217 |
PSECURITY_DESCRIPTOR pSecurityDescriptor; |
| 218 |
DWORD NumberOfStorages; |
| 219 |
} DFS_INFO_8, *PDFS_INFO_8; |
| 220 |
|
| 221 |
typedef struct _DFS_INFO_9 { |
| 222 |
LPWSTR EntryPath; |
| 223 |
LPWSTR Comment; |
| 224 |
DWORD State; |
| 225 |
ULONG Timeout; |
| 226 |
GUID Guid; |
| 227 |
ULONG PropertyFlags; |
| 228 |
ULONG MetadataSize; |
| 229 |
ULONG SdLengthReserved; |
| 230 |
PSECURITY_DESCRIPTOR pSecurityDescriptor; |
| 231 |
DWORD NumberOfStorages; |
| 232 |
LPDFS_STORAGE_INFO_1 Storage; |
| 233 |
} DFS_INFO_9, *PDFS_INFO_9; |
| 234 |
|
| 235 |
typedef struct _DFS_INFO_50 { |
| 236 |
ULONG NamespaceMajorVersion; |
| 237 |
ULONG NamespaceMinorVersion; |
| 238 |
ULONGLONG NamespaceCapabilities; |
| 239 |
} DFS_INFO_50, *PDFS_INFO_50; |
| 240 |
|
| 241 |
typedef struct _DFS_INFO_107 { |
| 242 |
LPWSTR Comment; |
| 243 |
DWORD State; |
| 244 |
ULONG Timeout; |
| 245 |
ULONG PropertyFlagMask; |
| 246 |
ULONG PropertyFlags; |
| 247 |
ULONG SdLengthReserved; |
| 248 |
PSECURITY_DESCRIPTOR pSecurityDescriptor; |
| 249 |
} DFS_INFO_107, *PDFS_INFO_107; |
| 250 |
|
| 251 |
typedef struct _DFS_INFO_150 { |
| 252 |
ULONG SdLengthReserved; |
| 253 |
PSECURITY_DESCRIPTOR pSecurityDescriptor; |
| 254 |
} DFS_INFO_150, *PDFS_INFO_150; |
| 255 |
|
| 256 |
NET_API_STATUS NET_API_FUNCTION NetDfsAddRootTarget( |
| 257 |
LPWSTR pDfsPath, |
| 258 |
LPWSTR pTargetPath, |
| 259 |
ULONG MajorVersion, |
| 260 |
LPWSTR pComment, |
| 261 |
ULONG Flags |
| 262 |
); |
| 263 |
|
| 264 |
NET_API_STATUS NET_API_FUNCTION NetDfsGetSupportedNamespaceVersion( |
| 265 |
DFS_NAMESPACE_VERSION_ORIGIN Origin, |
| 266 |
PWSTR pName, |
| 267 |
PDFS_SUPPORTED_NAMESPACE_VERSION_INFO *ppVersionInfo |
| 268 |
); |
| 269 |
|
| 270 |
NET_API_STATUS NET_API_FUNCTION NetDfsRemoveRootTarget( |
| 271 |
LPWSTR pDfsPath, |
| 272 |
LPWSTR pTargetPath, |
| 273 |
ULONG Flags |
| 274 |
); |
| 275 |
|
| 276 |
NET_API_STATUS WINAPI NetShareDelEx( |
| 277 |
LMSTR servername, |
| 278 |
DWORD level, |
| 279 |
LPBYTE buf |
| 280 |
); |
| 281 |
|
| 282 |
#endif /*(_WIN32_WINNT >= 0x0600)*/ |
| 283 |
|
| 284 |
typedef struct _DFS_INFO_200 { |
| 285 |
LPWSTR FtDfsName; |
| 286 |
} DFS_INFO_200,*PDFS_INFO_200,*LPDFS_INFO_200; |
| 287 |
|
| 288 |
typedef struct _DFS_INFO_300 { |
| 289 |
DWORD Flags; |
| 290 |
LPWSTR DfsName; |
| 291 |
} DFS_INFO_300,*PDFS_INFO_300,*LPDFS_INFO_300; |
| 292 |
|
| 293 |
#define DFS_ADD_VOLUME 1 |
| 294 |
#define DFS_RESTORE_VOLUME 2 |
| 295 |
|
| 296 |
NET_API_STATUS WINAPI NetDfsAdd(LPWSTR DfsEntryPath,LPWSTR ServerName,LPWSTR ShareName,LPWSTR Comment,DWORD Flags); |
| 297 |
NET_API_STATUS WINAPI NetDfsAddStdRoot(LPWSTR ServerName,LPWSTR RootShare,LPWSTR Comment,DWORD Flags); |
| 298 |
NET_API_STATUS WINAPI NetDfsRemoveStdRoot(LPWSTR ServerName,LPWSTR RootShare,DWORD Flags); |
| 299 |
NET_API_STATUS WINAPI NetDfsAddFtRoot(LPWSTR ServerName,LPWSTR RootShare,LPWSTR FtDfsName,LPWSTR Comment,DWORD Flags); |
| 300 |
NET_API_STATUS WINAPI NetDfsRemoveFtRoot(LPWSTR ServerName,LPWSTR RootShare,LPWSTR FtDfsName,DWORD Flags); |
| 301 |
NET_API_STATUS WINAPI NetDfsRemoveFtRootForced(LPWSTR DomainName,LPWSTR ServerName,LPWSTR RootShare,LPWSTR FtDfsName,DWORD Flags); |
| 302 |
NET_API_STATUS WINAPI NetDfsManagerInitialize(LPWSTR ServerName,DWORD Flags); |
| 303 |
NET_API_STATUS WINAPI NetDfsAddStdRootForced(LPWSTR ServerName,LPWSTR RootShare,LPWSTR Comment,LPWSTR Store); |
| 304 |
NET_API_STATUS WINAPI NetDfsGetDcAddress(LPWSTR ServerName,LPWSTR *DcIpAddress,BOOLEAN *IsRoot,ULONG *Timeout); |
| 305 |
|
| 306 |
#define NET_DFS_SETDC_FLAGS 0x00000000 |
| 307 |
#define NET_DFS_SETDC_TIMEOUT 0x00000001 |
| 308 |
#define NET_DFS_SETDC_INITPKT 0x00000002 |
| 309 |
|
| 310 |
typedef struct { |
| 311 |
ULONG SiteFlags; |
| 312 |
LPWSTR SiteName; |
| 313 |
} DFS_SITENAME_INFO,*PDFS_SITENAME_INFO,*LPDFS_SITENAME_INFO; |
| 314 |
|
| 315 |
#define DFS_SITE_PRIMARY 0x1 |
| 316 |
|
| 317 |
typedef struct { |
| 318 |
ULONG cSites; |
| 319 |
DFS_SITENAME_INFO Site[1]; |
| 320 |
} DFS_SITELIST_INFO,*PDFS_SITELIST_INFO,*LPDFS_SITELIST_INFO; |
| 321 |
|
| 322 |
NET_API_STATUS WINAPI NetDfsRemove(LPWSTR DfsEntryPath,LPWSTR ServerName,LPWSTR ShareName); |
| 323 |
NET_API_STATUS WINAPI NetDfsEnum(LPWSTR DfsName,DWORD Level,DWORD PrefMaxLen,LPBYTE *Buffer,LPDWORD EntriesRead,LPDWORD ResumeHandle); |
| 324 |
NET_API_STATUS WINAPI NetDfsGetInfo(LPWSTR DfsEntryPath,LPWSTR ServerName,LPWSTR ShareName,DWORD Level,LPBYTE *Buffer); |
| 325 |
NET_API_STATUS WINAPI NetDfsSetInfo(LPWSTR DfsEntryPath,LPWSTR ServerName,LPWSTR ShareName,DWORD Level,LPBYTE Buffer); |
| 326 |
NET_API_STATUS WINAPI NetDfsGetClientInfo(LPWSTR DfsEntryPath,LPWSTR ServerName,LPWSTR ShareName,DWORD Level,LPBYTE *Buffer); |
| 327 |
NET_API_STATUS WINAPI NetDfsSetClientInfo(LPWSTR DfsEntryPath,LPWSTR ServerName,LPWSTR ShareName,DWORD Level,LPBYTE Buffer); |
| 328 |
NET_API_STATUS WINAPI NetDfsMove(LPWSTR DfsEntryPath,LPWSTR DfsNewEntryPath,ULONG Flags); |
| 329 |
|
| 330 |
#define DFS_MOVE_FLAG_REPLACE_IF_EXISTS 0x00000001 |
| 331 |
|
| 332 |
NET_API_STATUS WINAPI NetDfsRename(LPWSTR Path,LPWSTR NewPath); |
| 333 |
NET_API_STATUS WINAPI NetDfsGetSecurity(LPWSTR DfsEntryPath,SECURITY_INFORMATION SecurityInformation,PSECURITY_DESCRIPTOR *ppSecurityDescriptor,LPDWORD lpcbSecurityDescriptor); |
| 334 |
NET_API_STATUS WINAPI NetDfsSetSecurity(LPWSTR DfsEntryPath,SECURITY_INFORMATION SecurityInformation,PSECURITY_DESCRIPTOR pSecurityDescriptor); |
| 335 |
NET_API_STATUS WINAPI NetDfsGetStdContainerSecurity(LPWSTR MachineName,SECURITY_INFORMATION SecurityInformation,PSECURITY_DESCRIPTOR *ppSecurityDescriptor,LPDWORD lpcbSecurityDescriptor); |
| 336 |
NET_API_STATUS WINAPI NetDfsSetStdContainerSecurity(LPWSTR MachineName,SECURITY_INFORMATION SecurityInformation,PSECURITY_DESCRIPTOR pSecurityDescriptor); |
| 337 |
NET_API_STATUS WINAPI NetDfsGetFtContainerSecurity(LPWSTR DomainName,SECURITY_INFORMATION SecurityInformation,PSECURITY_DESCRIPTOR *ppSecurityDescriptor,LPDWORD lpcbSecurityDescriptor); |
| 338 |
NET_API_STATUS WINAPI NetDfsSetFtContainerSecurity(LPWSTR DomainName,SECURITY_INFORMATION SecurityInformation,PSECURITY_DESCRIPTOR pSecurityDescriptor); |
| 339 |
|
| 340 |
#ifdef __cplusplus |
| 341 |
} |
| 342 |
#endif |
| 343 |
#endif |