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