| // Copyright © 2015, skdltmxn |
| // Licensed under the MIT License <LICENSE.md> |
| // This file contains structures, function prototypes, and definitions for the NetDfs API |
| pub const DFS_VOLUME_STATES: ::DWORD = 0xF; |
| pub const DFS_VOLUME_STATE_OK: ::DWORD = 1; |
| pub const DFS_VOLUME_STATE_INCONSISTENT: ::DWORD = 2; |
| pub const DFS_VOLUME_STATE_OFFLINE: ::DWORD = 3; |
| pub const DFS_VOLUME_STATE_ONLINE: ::DWORD = 4; |
| pub const DFS_VOLUME_STATE_RESYNCHRONIZE: ::DWORD = 0x10; |
| pub const DFS_VOLUME_STATE_STANDBY: ::DWORD = 0x20; |
| pub const DFS_VOLUME_STATE_FORCE_SYNC: ::DWORD = 0x40; |
| pub const DFS_VOLUME_FLAVORS: ::DWORD = 0x0300; |
| pub const DFS_VOLUME_FLAVOR_UNUSED1: ::DWORD = 0x0000; |
| pub const DFS_VOLUME_FLAVOR_STANDALONE: ::DWORD = 0x0100; |
| pub const DFS_VOLUME_FLAVOR_AD_BLOB: ::DWORD = 0x0200; |
| pub const DFS_STORAGE_FLAVOR_UNUSED2: ::DWORD = 0x0300; |
| pub const DFS_STORAGE_STATES: ::ULONG = 0xF; |
| pub const DFS_STORAGE_STATE_OFFLINE: ::ULONG = 1; |
| pub const DFS_STORAGE_STATE_ONLINE: ::ULONG = 2; |
| pub const DFS_STORAGE_STATE_ACTIVE: ::ULONG = 4; |
| ENUM!{enum DFS_TARGET_PRIORITY_CLASS { |
| DfsInvalidPriorityClass = -1i32 as u32, |
| DfsSiteCostNormalPriorityClass = 0, |
| DfsGlobalHighPriorityClass, |
| DfsSiteCostHighPriorityClass, |
| DfsSiteCostLowPriorityClass, |
| DfsGlobalLowPriorityClass, |
| }} |
| STRUCT!{struct DFS_TARGET_PRIORITY { |
| TargetPriorityClass: DFS_TARGET_PRIORITY_CLASS, |
| TargetPriorityRank: ::USHORT, |
| Reserved: ::USHORT, |
| }} |
| pub type PDFS_TARGET_PRIORITY = *mut DFS_TARGET_PRIORITY; |
| STRUCT!{struct DFS_INFO_1 { |
| EntryPath: ::LPWSTR, |
| }} |
| pub type PDFS_INFO_1 = *mut DFS_INFO_1; |
| pub type LPDFS_INFO_1 = *mut DFS_INFO_1; |
| #[cfg(target_arch="x86_64")] STRUCT!{struct DFS_INFO_1_32 { |
| EntryPath: ::ULONG, |
| }} |
| #[cfg(target_arch="x86_64")] |
| pub type PDFS_INFO_1_32 = *mut DFS_INFO_1_32; |
| #[cfg(target_arch="x86_64")] |
| pub type LPDFS_INFO_1_32 = *mut DFS_INFO_1_32; |
| STRUCT!{struct DFS_INFO_2 { |
| EntryPath: ::LPWSTR, |
| Comment: ::LPWSTR, |
| State: ::DWORD, |
| NumberOfStorages: ::DWORD, |
| }} |
| pub type PDFS_INFO_2 = *mut DFS_INFO_2; |
| pub type LPDFS_INFO_2 = *mut DFS_INFO_2; |
| #[cfg(target_arch="x86_64")] STRUCT!{struct DFS_INFO_2_32 { |
| EntryPath: ::ULONG, |
| Comment: ::ULONG, |
| State: ::DWORD, |
| NumberOfStorages: ::DWORD, |
| }} |
| #[cfg(target_arch="x86_64")] |
| pub type PDFS_INFO_2_32 = *mut DFS_INFO_2_32; |
| #[cfg(target_arch="x86_64")] |
| pub type LPDFS_INFO_2_32 = *mut DFS_INFO_2_32; |
| STRUCT!{struct DFS_STORAGE_INFO { |
| State: ::ULONG, |
| ServerName: ::LPWSTR, |
| ShareName: ::LPWSTR, |
| }} |
| pub type PDFS_STORAGE_INFO = *mut DFS_STORAGE_INFO; |
| pub type LPDFS_STORAGE_INFO = *mut DFS_STORAGE_INFO; |
| #[cfg(target_arch="x86_64")] STRUCT!{struct DFS_STORAGE_INFO_0_32 { |
| State: ::ULONG, |
| ServerName: ::ULONG, |
| ShareName: ::ULONG, |
| }} |
| #[cfg(target_arch="x86_64")] |
| pub type PDFS_STORAGE_INFO_0_32 = *mut DFS_STORAGE_INFO_0_32; |
| #[cfg(target_arch="x86_64")] |
| pub type LPDFS_STORAGE_INFO_0_32 = *mut DFS_STORAGE_INFO_0_32; |
| STRUCT!{struct DFS_STORAGE_INFO_1 { |
| State: ::ULONG, |
| ServerName: ::LPWSTR, |
| ShareName: ::LPWSTR, |
| TargetPriority: DFS_TARGET_PRIORITY, |
| }} |
| pub type PDFS_STORAGE_INFO_1 = *mut DFS_STORAGE_INFO_1; |
| pub type LPDFS_STORAGE_INFO_1 = *mut DFS_STORAGE_INFO_1; |
| STRUCT!{struct DFS_INFO_3 { |
| EntryPath: ::LPWSTR, |
| Comment: ::LPWSTR, |
| State: ::DWORD, |
| NumberOfStorages: ::DWORD, |
| Storage: LPDFS_STORAGE_INFO, |
| }} |
| pub type PDFS_INFO_3 = *mut DFS_INFO_3; |
| pub type LPDFS_INFO_3 = *mut DFS_INFO_3; |
| #[cfg(target_arch="x86_64")] STRUCT!{struct DFS_INFO_3_32 { |
| EntryPath: ::ULONG, |
| Comment: ::ULONG, |
| State: ::DWORD, |
| NumberOfStorages: ::DWORD, |
| Storage: ::ULONG, |
| }} |
| #[cfg(target_arch="x86_64")] |
| pub type PDFS_INFO_3_32 = *mut DFS_INFO_3_32; |
| #[cfg(target_arch="x86_64")] |
| pub type LPDFS_INFO_3_32 = *mut DFS_INFO_3_32; |
| STRUCT!{struct DFS_INFO_4 { |
| EntryPath: ::LPWSTR, |
| Comment: ::LPWSTR, |
| State: ::DWORD, |
| Timeout: ::ULONG, |
| Guid: ::GUID, |
| NumberOfStorages: ::DWORD, |
| Storage: LPDFS_STORAGE_INFO, |
| }} |
| pub type PDFS_INFO_4 = *mut DFS_INFO_4; |
| pub type LPDFS_INFO_4 = *mut DFS_INFO_4; |
| #[cfg(target_arch="x86_64")] STRUCT!{struct DFS_INFO_4_32 { |
| EntryPath: ::ULONG, |
| Comment: ::ULONG, |
| State: ::DWORD, |
| Timeout: ::ULONG, |
| Guid: ::GUID, |
| NumberOfStorages: ::DWORD, |
| Storage: ::ULONG, |
| }} |
| #[cfg(target_arch="x86_64")] |
| pub type PDFS_INFO_4_32 = *mut DFS_INFO_4_32; |
| #[cfg(target_arch="x86_64")] |
| pub type LPDFS_INFO_4_32 = *mut DFS_INFO_4_32; |
| STRUCT!{struct DFS_INFO_5 { |
| EntryPath: ::LPWSTR, |
| Comment: ::LPWSTR, |
| State: ::DWORD, |
| Timeout: ::ULONG, |
| Guid: ::GUID, |
| PropertyFlags: ::ULONG, |
| MetadataSize: ::ULONG, |
| NumberOfStorages: ::DWORD, |
| }} |
| pub type PDFS_INFO_5 = *mut DFS_INFO_5; |
| pub type LPDFS_INFO_5 = *mut DFS_INFO_5; |
| STRUCT!{struct DFS_INFO_6 { |
| EntryPath: ::LPWSTR, |
| Comment: ::LPWSTR, |
| State: ::DWORD, |
| Timeout: ::ULONG, |
| Guid: ::GUID, |
| PropertyFlags: ::ULONG, |
| MetadataSize: ::ULONG, |
| NumberOfStorages: ::DWORD, |
| Storage: LPDFS_STORAGE_INFO, |
| }} |
| pub type PDFS_INFO_6 = *mut DFS_INFO_6; |
| pub type LPDFS_INFO_6 = *mut DFS_INFO_6; |
| STRUCT!{struct DFS_INFO_7 { |
| GenerationGuid: ::GUID, |
| }} |
| pub type PDFS_INFO_7 = *mut DFS_INFO_7; |
| pub type LPDFS_INFO_7 = *mut DFS_INFO_7; |
| STRUCT!{struct DFS_INFO_8 { |
| EntryPath: ::LPWSTR, |
| Comment: ::LPWSTR, |
| State: ::DWORD, |
| Timeout: ::ULONG, |
| Guid: ::GUID, |
| PropertyFlags: ::ULONG, |
| MetadataSize: ::ULONG, |
| SdLengthReserved: ::ULONG, |
| pSecurityDescriptor: ::PSECURITY_DESCRIPTOR, |
| NumberOfStorages: ::DWORD, |
| }} |
| pub type PDFS_INFO_8 = *mut DFS_INFO_8; |
| pub type LPDFS_INFO_8 = *mut DFS_INFO_8; |
| STRUCT!{struct DFS_INFO_9 { |
| EntryPath: ::LPWSTR, |
| Comment: ::LPWSTR, |
| State: ::DWORD, |
| Timeout: ::ULONG, |
| Guid: ::GUID, |
| PropertyFlags: ::ULONG, |
| MetadataSize: ::ULONG, |
| SdLengthReserved: ::ULONG, |
| pSecurityDescriptor: ::PSECURITY_DESCRIPTOR, |
| NumberOfStorages: ::DWORD, |
| Storage: LPDFS_STORAGE_INFO, |
| }} |
| pub type PDFS_INFO_9 = *mut DFS_INFO_9; |
| pub type LPDFS_INFO_9 = *mut DFS_INFO_9; |
| pub const DFS_PROPERTY_FLAG_INSITE_REFERRALS: ::ULONG = 0x00000001; |
| pub const DFS_PROPERTY_FLAG_ROOT_SCALABILITY: ::ULONG = 0x00000002; |
| pub const DFS_PROPERTY_FLAG_SITE_COSTING: ::ULONG = 0x00000004; |
| pub const DFS_PROPERTY_FLAG_TARGET_FAILBACK: ::ULONG = 0x00000008; |
| pub const DFS_PROPERTY_FLAG_CLUSTER_ENABLED: ::ULONG = 0x00000010; |
| pub const DFS_PROPERTY_FLAG_ABDE: ::ULONG = 0x00000020; |
| pub const DFS_VALID_PROPERTY_FLAGS: ::ULONG = DFS_PROPERTY_FLAG_INSITE_REFERRALS |
| | DFS_PROPERTY_FLAG_ROOT_SCALABILITY | DFS_PROPERTY_FLAG_SITE_COSTING |
| | DFS_PROPERTY_FLAG_TARGET_FAILBACK | DFS_PROPERTY_FLAG_CLUSTER_ENABLED |
| | DFS_PROPERTY_FLAG_ABDE; |
| STRUCT!{struct DFS_INFO_50 { |
| NamespaceMajorVersion: ::ULONG, |
| NamespaceMinorVersion: ::ULONG, |
| NamespaceCapabilities: ::ULONGLONG, |
| }} |
| pub type PDFS_INFO_50 = *mut DFS_INFO_50; |
| pub type LPDFS_INFO_50 = *mut DFS_INFO_50; |
| STRUCT!{struct DFS_INFO_100 { |
| Comment: ::LPWSTR, |
| }} |
| pub type PDFS_INFO_100 = *mut DFS_INFO_100; |
| pub type LPDFS_INFO_100 = *mut DFS_INFO_100; |
| STRUCT!{struct DFS_INFO_101 { |
| State: ::DWORD, |
| }} |
| pub type PDFS_INFO_101 = *mut DFS_INFO_101; |
| pub type LPDFS_INFO_101 = *mut DFS_INFO_101; |
| STRUCT!{struct DFS_INFO_102 { |
| Timeout: ::ULONG, |
| }} |
| pub type PDFS_INFO_102 = *mut DFS_INFO_102; |
| pub type LPDFS_INFO_102 = *mut DFS_INFO_102; |
| STRUCT!{struct DFS_INFO_103 { |
| PropertyFlagMask: ::ULONG, |
| PropertyFlags: ::ULONG, |
| }} |
| pub type PDFS_INFO_103 = *mut DFS_INFO_103; |
| pub type LPDFS_INFO_103 = *mut DFS_INFO_103; |
| STRUCT!{struct DFS_INFO_104 { |
| TargetPriority: DFS_TARGET_PRIORITY, |
| }} |
| pub type PDFS_INFO_104 = *mut DFS_INFO_104; |
| pub type LPDFS_INFO_104 = *mut DFS_INFO_104; |
| STRUCT!{struct DFS_INFO_105 { |
| Comment: ::LPWSTR, |
| State: ::DWORD, |
| Timeout: ::ULONG, |
| PropertyFlagMask: ::ULONG, |
| PropertyFlags: ::ULONG, |
| }} |
| pub type PDFS_INFO_105 = *mut DFS_INFO_105; |
| pub type LPDFS_INFO_105 = *mut DFS_INFO_105; |
| STRUCT!{struct DFS_INFO_106 { |
| State: ::DWORD, |
| TargetPriority: DFS_TARGET_PRIORITY, |
| }} |
| pub type PDFS_INFO_106 = *mut DFS_INFO_106; |
| pub type LPDFS_INFO_106 = *mut DFS_INFO_106; |
| STRUCT!{struct DFS_INFO_107 { |
| Comment: ::LPWSTR, |
| State: ::DWORD, |
| Timeout: ::ULONG, |
| PropertyFlagMask: ::ULONG, |
| PropertyFlags: ::ULONG, |
| SdLengthReserved: ::ULONG, |
| pSecurityDescriptor: ::PSECURITY_DESCRIPTOR, |
| }} |
| pub type PDFS_INFO_107 = *mut DFS_INFO_107; |
| pub type LPDFS_INFO_107 = *mut DFS_INFO_107; |
| STRUCT!{struct DFS_INFO_150 { |
| SdLengthReserved: ::ULONG, |
| pSecurityDescriptor: ::PSECURITY_DESCRIPTOR, |
| }} |
| pub type PDFS_INFO_150 = *mut DFS_INFO_150; |
| pub type LPDFS_INFO_150 = *mut DFS_INFO_150; |
| STRUCT!{struct DFS_INFO_200 { |
| FtDfsName: ::LPWSTR, |
| }} |
| pub type PDFS_INFO_200 = *mut DFS_INFO_200; |
| pub type LPDFS_INFO_200 = *mut DFS_INFO_200; |
| STRUCT!{struct DFS_INFO_300 { |
| Flags: ::DWORD, |
| DfsName: ::LPWSTR, |
| }} |
| pub type PDFS_INFO_300 = *mut DFS_INFO_300; |
| pub type LPDFS_INFO_300 = *mut DFS_INFO_300; |
| pub const DFS_ADD_VOLUME: ::DWORD = 1; |
| pub const DFS_RESTORE_VOLUME: ::DWORD = 2; |
| pub const NET_DFS_SETDC_FLAGS: ::DWORD = 0x00000000; |
| pub const NET_DFS_SETDC_TIMEOUT: ::DWORD = 0x00000001; |
| pub const NET_DFS_SETDC_INITPKT: ::DWORD = 0x00000002; |
| STRUCT!{struct DFS_SITENAME_INFO { |
| SiteFlags: ::ULONG, |
| SiteName: ::LPWSTR, |
| }} |
| pub type PDFS_SITENAME_INFO = *mut DFS_SITENAME_INFO; |
| pub type LPDFS_SITENAME_INFO = *mut DFS_SITENAME_INFO; |
| pub const DFS_SITE_PRIMARY: ::ULONG = 0x1; |
| STRUCT!{struct DFS_SITELIST_INFO { |
| cSites: ::ULONG, |
| Site: [DFS_SITENAME_INFO; 1], |
| }} |
| pub type PDFS_SITELIST_INFO = *mut DFS_SITELIST_INFO; |
| pub type LPDFS_SITELIST_INFO = *mut DFS_SITELIST_INFO; |
| ENUM!{enum DFS_NAMESPACE_VERSION_ORIGIN { |
| DFS_NAMESPACE_VERSION_ORIGIN_COMBINED = 0, |
| DFS_NAMESPACE_VERSION_ORIGIN_SERVER, |
| DFS_NAMESPACE_VERSION_ORIGIN_DOMAIN, |
| }} |
| pub type PDFS_NAMESPACE_VERSION_ORIGIN = *mut DFS_NAMESPACE_VERSION_ORIGIN; |
| pub const DFS_NAMESPACE_CAPABILITY_ABDE: ::ULONGLONG = 0x0000000000000001; |
| STRUCT!{struct DFS_SUPPORTED_NAMESPACE_VERSION_INFO { |
| DomainDfsMajorVersion: ::ULONG, |
| DomainDfsMinorVersion: ::ULONG, |
| DomainDfsCapabilities: ::ULONGLONG, |
| StandaloneDfsMajorVersion: ::ULONG, |
| StandaloneDfsMinorVersion: ::ULONG, |
| StandaloneDfsCapabilities: ::ULONGLONG, |
| }} |
| pub type PDFS_SUPPORTED_NAMESPACE_VERSION_INFO = *mut DFS_SUPPORTED_NAMESPACE_VERSION_INFO; |