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 _LMREPL_
7 #define _LMREPL_
8 
9 #ifdef __cplusplus
10 extern "C" {
11 #endif
12 
13 #define REPL_ROLE_EXPORT 1
14 #define REPL_ROLE_IMPORT 2
15 #define REPL_ROLE_BOTH 3
16 
17 #define REPL_INTERVAL_INFOLEVEL (PARMNUM_BASE_INFOLEVEL + 0)
18 #define REPL_PULSE_INFOLEVEL (PARMNUM_BASE_INFOLEVEL + 1)
19 #define REPL_GUARDTIME_INFOLEVEL (PARMNUM_BASE_INFOLEVEL + 2)
20 #define REPL_RANDOM_INFOLEVEL (PARMNUM_BASE_INFOLEVEL + 3)
21 
22   typedef struct _REPL_INFO_0 {
23     DWORD rp0_role;
24     LPWSTR rp0_exportpath;
25     LPWSTR rp0_exportlist;
26     LPWSTR rp0_importpath;
27     LPWSTR rp0_importlist;
28     LPWSTR rp0_logonusername;
29     DWORD rp0_interval;
30     DWORD rp0_pulse;
31     DWORD rp0_guardtime;
32     DWORD rp0_random;
33   } REPL_INFO_0,*PREPL_INFO_0,*LPREPL_INFO_0;
34 
35   typedef struct _REPL_INFO_1000 {
36     DWORD rp1000_interval;
37   } REPL_INFO_1000,*PREPL_INFO_1000,*LPREPL_INFO_1000;
38 
39   typedef struct _REPL_INFO_1001 {
40     DWORD rp1001_pulse;
41   } REPL_INFO_1001,*PREPL_INFO_1001,*LPREPL_INFO_1001;
42 
43   typedef struct _REPL_INFO_1002 {
44     DWORD rp1002_guardtime;
45   } REPL_INFO_1002,*PREPL_INFO_1002,*LPREPL_INFO_1002;
46 
47   typedef struct _REPL_INFO_1003 {
48     DWORD rp1003_random;
49   } REPL_INFO_1003,*PREPL_INFO_1003,*LPREPL_INFO_1003;
50 
51   NET_API_STATUS WINAPI NetReplGetInfo(LPCWSTR servername,DWORD level,LPBYTE *bufptr);
52   NET_API_STATUS WINAPI NetReplSetInfo(LPCWSTR servername,DWORD level,const LPBYTE buf,LPDWORD parm_err);
53 
54 #define REPL_INTEGRITY_FILE 1
55 #define REPL_INTEGRITY_TREE 2
56 
57 #define REPL_EXTENT_FILE 1
58 #define REPL_EXTENT_TREE 2
59 
60 #define REPL_EXPORT_INTEGRITY_INFOLEVEL (PARMNUM_BASE_INFOLEVEL + 0)
61 #define REPL_EXPORT_EXTENT_INFOLEVEL (PARMNUM_BASE_INFOLEVEL + 1)
62 
63   typedef struct _REPL_EDIR_INFO_0 {
64     LPWSTR rped0_dirname;
65   } REPL_EDIR_INFO_0,*PREPL_EDIR_INFO_0,*LPREPL_EDIR_INFO_0;
66 
67   typedef struct _REPL_EDIR_INFO_1 {
68     LPWSTR rped1_dirname;
69     DWORD rped1_integrity;
70     DWORD rped1_extent;
71   } REPL_EDIR_INFO_1,*PREPL_EDIR_INFO_1,*LPREPL_EDIR_INFO_1;
72 
73   typedef struct _REPL_EDIR_INFO_2 {
74     LPWSTR rped2_dirname;
75     DWORD rped2_integrity;
76     DWORD rped2_extent;
77     DWORD rped2_lockcount;
78     DWORD rped2_locktime;
79   } REPL_EDIR_INFO_2,*PREPL_EDIR_INFO_2,*LPREPL_EDIR_INFO_2;
80 
81   typedef struct _REPL_EDIR_INFO_1000 {
82     DWORD rped1000_integrity;
83   } REPL_EDIR_INFO_1000,*PREPL_EDIR_INFO_1000,*LPREPL_EDIR_INFO_1000;
84 
85   typedef struct _REPL_EDIR_INFO_1001 {
86     DWORD rped1001_extent;
87   } REPL_EDIR_INFO_1001,*PREPL_EDIR_INFO_1001,*LPREPL_EDIR_INFO_1001;
88 
89   NET_API_STATUS WINAPI NetReplExportDirAdd(LPCWSTR servername,DWORD level,const LPBYTE buf,LPDWORD parm_err);
90   NET_API_STATUS WINAPI NetReplExportDirDel(LPCWSTR servername,LPCWSTR dirname);
91   NET_API_STATUS WINAPI NetReplExportDirEnum(LPCWSTR servername,DWORD level,LPBYTE *bufptr,DWORD prefmaxlen,LPDWORD entriesread,LPDWORD totalentries,LPDWORD resumehandle);
92   NET_API_STATUS WINAPI NetReplExportDirGetInfo(LPCWSTR servername,LPCWSTR dirname,DWORD level,LPBYTE *bufptr);
93   NET_API_STATUS WINAPI NetReplExportDirSetInfo(LPCWSTR servername,LPCWSTR dirname,DWORD level,const LPBYTE buf,LPDWORD parm_err);
94   NET_API_STATUS WINAPI NetReplExportDirLock(LPCWSTR servername,LPCWSTR dirname);
95   NET_API_STATUS WINAPI NetReplExportDirUnlock(LPCWSTR servername,LPCWSTR dirname,DWORD unlockforce);
96 
97 #define REPL_UNLOCK_NOFORCE 0
98 #define REPL_UNLOCK_FORCE 1
99 
100   typedef struct _REPL_IDIR_INFO_0 {
101     LPWSTR rpid0_dirname;
102   } REPL_IDIR_INFO_0,*PREPL_IDIR_INFO_0,*LPREPL_IDIR_INFO_0;
103 
104   typedef struct _REPL_IDIR_INFO_1 {
105     LPWSTR rpid1_dirname;
106     DWORD rpid1_state;
107     LPWSTR rpid1_mastername;
108     DWORD rpid1_last_update_time;
109     DWORD rpid1_lockcount;
110     DWORD rpid1_locktime;
111   } REPL_IDIR_INFO_1,*PREPL_IDIR_INFO_1,*LPREPL_IDIR_INFO_1;
112 
113   NET_API_STATUS WINAPI NetReplImportDirAdd(LPCWSTR servername,DWORD level,const LPBYTE buf,LPDWORD parm_err);
114   NET_API_STATUS WINAPI NetReplImportDirDel(LPCWSTR servername,LPCWSTR dirname);
115   NET_API_STATUS WINAPI NetReplImportDirEnum(LPCWSTR servername,DWORD level,LPBYTE *bufptr,DWORD prefmaxlen,LPDWORD entriesread,LPDWORD totalentries,LPDWORD resumehandle);
116   NET_API_STATUS WINAPI NetReplImportDirGetInfo(LPCWSTR servername,LPCWSTR dirname,DWORD level,LPBYTE *bufptr);
117   NET_API_STATUS WINAPI NetReplImportDirLock(LPCWSTR servername,LPCWSTR dirname);
118   NET_API_STATUS WINAPI NetReplImportDirUnlock(LPCWSTR servername,LPCWSTR dirname,DWORD unlockforce);
119 
120 #define REPL_STATE_OK 0
121 #define REPL_STATE_NO_MASTER 1
122 #define REPL_STATE_NO_SYNC 2
123 #define REPL_STATE_NEVER_REPLICATED 3
124 
125 #ifdef __cplusplus
126 }
127 #endif
128 #endif
129