1 /**
2  * Windows API header module
3  *
4  * Translated from MinGW Windows headers
5  *
6  * License: $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
7  * Source: $(DRUNTIMESRC core/sys/windows/_lmrepl.d)
8  */
9 /// Automatically imported and edited from the druntime module
10 /// core.sys.windows.lmrepl for the auto-generated win32 package.
11 module win32.lmrepl;
12 //version (Windows):
13 @system:
14 version (Win32_UseLib) pragma(lib, "netapi32");
15 
16 import win32.lmcons, win32.windef;
17 
18 enum REPL_ROLE_EXPORT=1;
19 enum REPL_ROLE_IMPORT=2;
20 enum REPL_ROLE_BOTH=3;
21 
22 enum REPL_INTERVAL_INFOLEVEL  = PARMNUM_BASE_INFOLEVEL+0;
23 enum REPL_PULSE_INFOLEVEL     = PARMNUM_BASE_INFOLEVEL+1;
24 enum REPL_GUARDTIME_INFOLEVEL = PARMNUM_BASE_INFOLEVEL+2;
25 enum REPL_RANDOM_INFOLEVEL    = PARMNUM_BASE_INFOLEVEL+3;
26 
27 enum REPL_UNLOCK_NOFORCE=0;
28 enum REPL_UNLOCK_FORCE=1;
29 enum REPL_STATE_OK=0;
30 enum REPL_STATE_NO_MASTER=1;
31 enum REPL_STATE_NO_SYNC=2;
32 enum REPL_STATE_NEVER_REPLICATED=3;
33 enum REPL_INTEGRITY_FILE=1;
34 enum REPL_INTEGRITY_TREE=2;
35 enum REPL_EXTENT_FILE=1;
36 enum REPL_EXTENT_TREE=2;
37 
38 enum REPL_EXPORT_INTEGRITY_INFOLEVEL = PARMNUM_BASE_INFOLEVEL+0;
39 enum REPL_EXPORT_EXTENT_INFOLEVEL    = PARMNUM_BASE_INFOLEVEL+1;
40 
41 struct REPL_INFO_0 {
42     DWORD rp0_role;
43     LPWSTR rp0_exportpath;
44     LPWSTR rp0_exportlist;
45     LPWSTR rp0_importpath;
46     LPWSTR rp0_importlist;
47     LPWSTR rp0_logonusername;
48     DWORD rp0_interval;
49     DWORD rp0_pulse;
50     DWORD rp0_guardtime;
51     DWORD rp0_random;
52 }
53 alias REPL_INFO_0* PREPL_INFO_0, LPREPL_INFO_0;
54 
55 struct REPL_INFO_1000 {
56     DWORD rp1000_interval;
57 }
58 alias REPL_INFO_1000* PREPL_INFO_1000, LPREPL_INFO_1000;
59 
60 struct REPL_INFO_1001 {
61     DWORD rp1001_pulse;
62 }
63 alias REPL_INFO_1001* PREPL_INFO_1001, LPREPL_INFO_1001;
64 
65 struct REPL_INFO_1002 {
66     DWORD rp1002_guardtime;
67 }
68 alias REPL_INFO_1002* PREPL_INFO_1002, LPREPL_INFO_1002;
69 
70 struct REPL_INFO_1003 {
71     DWORD rp1003_random;
72 }
73 alias REPL_INFO_1003* PREPL_INFO_1003, LPREPL_INFO_1003;
74 
75 struct REPL_EDIR_INFO_0 {
76     LPWSTR rped0_dirname;
77 }
78 alias REPL_EDIR_INFO_0* PREPL_EDIR_INFO_0, LPREPL_EDIR_INFO_0;
79 
80 struct REPL_EDIR_INFO_1 {
81     LPWSTR rped1_dirname;
82     DWORD rped1_integrity;
83     DWORD rped1_extent;
84 }
85 alias REPL_EDIR_INFO_1* PREPL_EDIR_INFO_1, LPREPL_EDIR_INFO_1;
86 
87 struct REPL_EDIR_INFO_2 {
88     LPWSTR rped2_dirname;
89     DWORD rped2_integrity;
90     DWORD rped2_extent;
91     DWORD rped2_lockcount;
92     DWORD rped2_locktime;
93 }
94 alias REPL_EDIR_INFO_2* PREPL_EDIR_INFO_2, LPREPL_EDIR_INFO_2;
95 
96 struct REPL_EDIR_INFO_1000 {
97     DWORD rped1000_integrity;
98 }
99 alias REPL_EDIR_INFO_1000* PREPL_EDIR_INFO_1000, LPREPL_EDIR_INFO_1000;
100 
101 struct REPL_EDIR_INFO_1001 {
102     DWORD rped1001_extent;
103 }
104 alias REPL_EDIR_INFO_1001* PREPL_EDIR_INFO_1001, LPREPL_EDIR_INFO_1001;
105 
106 struct REPL_IDIR_INFO_0 {
107     LPWSTR rpid0_dirname;
108 }
109 alias REPL_IDIR_INFO_0* PREPL_IDIR_INFO_0, LPREPL_IDIR_INFO_0;
110 
111 struct REPL_IDIR_INFO_1 {
112     LPWSTR rpid1_dirname;
113     DWORD rpid1_state;
114     LPWSTR rpid1_mastername;
115     DWORD rpid1_last_update_time;
116     DWORD rpid1_lockcount;
117     DWORD rpid1_locktime;
118 }
119 alias REPL_IDIR_INFO_1* PREPL_IDIR_INFO_1, LPREPL_IDIR_INFO_1;
120 
121 extern (Windows) {
122 NET_API_STATUS NetReplGetInfo(LPCWSTR,DWORD,PBYTE*);
123 NET_API_STATUS NetReplSetInfo(LPCWSTR,DWORD,PBYTE,PDWORD);
124 NET_API_STATUS NetReplExportDirAdd(LPCWSTR,DWORD,PBYTE,PDWORD);
125 NET_API_STATUS NetReplExportDirDel(LPCWSTR,LPCWSTR);
126 NET_API_STATUS NetReplExportDirEnum(LPCWSTR,DWORD,PBYTE*,DWORD,PDWORD,PDWORD,PDWORD);
127 NET_API_STATUS NetReplExportDirGetInfo(LPCWSTR,LPCWSTR,DWORD,PBYTE*);
128 NET_API_STATUS NetReplExportDirSetInfo(LPCWSTR,LPCWSTR,DWORD,PBYTE,PDWORD);
129 NET_API_STATUS NetReplExportDirLock(LPCWSTR,LPCWSTR);
130 NET_API_STATUS NetReplExportDirUnlock(LPCWSTR,LPCWSTR,DWORD);
131 NET_API_STATUS NetReplImportDirAdd(LPCWSTR,DWORD,PBYTE,PDWORD);
132 NET_API_STATUS NetReplImportDirDel(LPCWSTR,LPCWSTR);
133 NET_API_STATUS NetReplImportDirEnum(LPCWSTR,DWORD,PBYTE*,DWORD,PDWORD,PDWORD,PDWORD);
134 NET_API_STATUS NetReplImportDirGetInfo(LPCWSTR,LPCWSTR,DWORD,PBYTE*);
135 NET_API_STATUS NetReplImportDirLock(LPCWSTR,LPCWSTR);
136 NET_API_STATUS NetReplImportDirUnlock(LPCWSTR,LPCWSTR,DWORD);
137 }