master
  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#ifdef _CERTBCLI_TYPECHECK
  7#undef __CERTBCLI_H__
  8#endif
  9
 10#ifndef __CERTBCLI_H__
 11#define __CERTBCLI_H__
 12
 13#ifdef __cplusplus
 14extern "C" {
 15#endif
 16
 17#ifndef _NO_W32_PSEUDO_MODIFIERS
 18#ifndef IN
 19#define IN
 20#endif
 21#ifndef OUT
 22#define OUT
 23#endif
 24#ifndef OPTIONAL
 25#define OPTIONAL
 26#endif
 27#endif
 28
 29#ifndef RPC_STRING
 30#define RPC_STRING
 31#endif
 32#ifndef VOID
 33#define VOID void
 34#endif
 35
 36#define CERTBCLI_CALL WINAPI
 37#define CERTBCLI_API __declspec(dllimport) WINAPI
 38
 39#define szBACKUPANNOTATION "Cert Server Backup Interface"
 40#define wszBACKUPANNOTATION TEXT(szBACKUPANNOTATION)
 41
 42#define szRESTOREANNOTATION "Cert Server Restore Interface"
 43#define wszRESTOREANNOTATION TEXT(szRESTOREANNOTATION)
 44
 45#define CSBACKUP_TYPE_FULL 0x00000001
 46#define CSBACKUP_TYPE_LOGS_ONLY 0x00000002
 47
 48#define CSBACKUP_TYPE_MASK 0x00000003
 49
 50#define CSRESTORE_TYPE_FULL 0x00000001
 51#define CSRESTORE_TYPE_ONLINE 0x00000002
 52#define CSRESTORE_TYPE_CATCHUP 0x00000004
 53#define CSRESTORE_TYPE_MASK 0x00000005
 54
 55#define CSBACKUP_DISABLE_INCREMENTAL 0xffffffff
 56
 57  typedef WCHAR CSBFT;
 58
 59#define CSBFT_DIRECTORY 0x80
 60#define CSBFT_DATABASE_DIRECTORY 0x40
 61#define CSBFT_LOG_DIRECTORY 0x20
 62
 63#define CSBFT_LOG ((CSBFT) (TEXT('\x01') | CSBFT_LOG_DIRECTORY))
 64#define CSBFT_LOG_DIR ((CSBFT) (TEXT('\x02') | CSBFT_DIRECTORY))
 65#define CSBFT_CHECKPOINT_DIR ((CSBFT) (TEXT('\x03') | CSBFT_DIRECTORY))
 66#define CSBFT_CERTSERVER_DATABASE ((CSBFT) (TEXT('\x04') | CSBFT_DATABASE_DIRECTORY))
 67#define CSBFT_PATCH_FILE ((CSBFT) (TEXT('\x05') | CSBFT_LOG_DIRECTORY))
 68#define CSBFT_UNKNOWN ((CSBFT) (TEXT('\x0f')))
 69
 70  typedef void *HCSBC;
 71
 72#ifndef CSEDB_RSTMAP
 73  typedef struct tagCSEDB_RSTMAPW {
 74    WCHAR *pwszDatabaseName;
 75    WCHAR *pwszNewDatabaseName;
 76  } CSEDB_RSTMAPW;
 77
 78#define CSEDB_RSTMAP CSEDB_RSTMAPW
 79#endif
 80
 81#define CertSrvIsServerOnline CertSrvIsServerOnlineW
 82#define CertSrvBackupGetDynamicFileList CertSrvBackupGetDynamicFileListW
 83#define CertSrvBackupPrepare CertSrvBackupPrepareW
 84#define CertSrvBackupGetDatabaseNames CertSrvBackupGetDatabaseNamesW
 85#define CertSrvBackupOpenFile CertSrvBackupOpenFileW
 86#define CertSrvBackupGetBackupLogs CertSrvBackupGetBackupLogsW
 87
 88#define CertSrvRestoreGetDatabaseLocations CertSrvRestoreGetDatabaseLocationsW
 89#define CertSrvRestorePrepare CertSrvRestorePrepareW
 90#define CertSrvRestoreRegister CertSrvRestoreRegisterW
 91
 92#define CertSrvServerControl CertSrvServerControlW
 93
 94  typedef HRESULT (WINAPI FNCERTSRVISSERVERONLINEW)(WCHAR const *pwszServerName,WINBOOL *pfServerOnline);
 95
 96  HRESULT CERTBCLI_API CertSrvIsServerOnlineW(WCHAR const *pwszServerName,WINBOOL *pfServerOnline);
 97
 98#ifdef _CERTBCLI_TYPECHECK
 99  FNCERTSRVISSERVERONLINEW *pfnCertSrvIsServerOnline = CertSrvIsServerOnline;
100#endif
101
102  typedef HRESULT (WINAPI FNCERTSRVBACKUPGETDYNAMICFILELISTW)(HCSBC hbc,WCHAR **ppwszzFileList,DWORD *pcbSize);
103
104  HRESULT CERTBCLI_API CertSrvBackupGetDynamicFileListW(HCSBC hbc,WCHAR **ppwszzFileList,DWORD *pcbSize);
105
106#ifdef _CERTBCLI_TYPECHECK
107  FNCERTSRVBACKUPGETDYNAMICFILELISTW *pfnCertSrvBackupGetDynamicFileList = CertSrvBackupGetDynamicFileList;
108#endif
109
110  typedef HRESULT (WINAPI FNCERTSRVBACKUPPREPAREW)(WCHAR const *pwszServerName,ULONG grbitJet,ULONG dwBackupFlags,HCSBC *phbc);
111
112  HRESULT CERTBCLI_API CertSrvBackupPrepareW(WCHAR const *pwszServerName,ULONG grbitJet,ULONG dwBackupFlags,HCSBC *phbc);
113
114#ifdef _CERTBCLI_TYPECHECK
115  FNCERTSRVBACKUPPREPAREW *pfnCertSrvBackupPrepare = CertSrvBackupPrepare;
116#endif
117
118  typedef HRESULT (WINAPI FNCERTSRVBACKUPGETDATABASENAMESW)(HCSBC hbc,WCHAR **ppwszzAttachmentInformation,DWORD *pcbSize);
119
120  HRESULT CERTBCLI_API CertSrvBackupGetDatabaseNamesW(HCSBC hbc,WCHAR **ppwszzAttachmentInformation,DWORD *pcbSize);
121
122#ifdef _CERTBCLI_TYPECHECK
123  FNCERTSRVBACKUPGETDATABASENAMESW *pfnCertSrvBackupGetDatabaseNames = CertSrvBackupGetDatabaseNames;
124#endif
125
126  typedef HRESULT (WINAPI FNCERTSRVBACKUPOPENFILEW)(HCSBC hbc,WCHAR const *pwszAttachmentName,DWORD cbReadHintSize,LARGE_INTEGER *pliFileSize);
127
128  HRESULT CERTBCLI_API CertSrvBackupOpenFileW(HCSBC hbc,WCHAR const *pwszAttachmentName,DWORD cbReadHintSize,LARGE_INTEGER *pliFileSize);
129
130#ifdef _CERTBCLI_TYPECHECK
131  FNCERTSRVBACKUPOPENFILEW *pfnCertSrvBackupOpenFile = CertSrvBackupOpenFile;
132#endif
133
134  typedef HRESULT (WINAPI FNCERTSRVBACKUPREAD)(HCSBC hbc,VOID *pvBuffer,DWORD cbBuffer,DWORD *pcbRead);
135
136  HRESULT CERTBCLI_API CertSrvBackupRead(HCSBC hbc,VOID *pvBuffer,DWORD cbBuffer,DWORD *pcbRead);
137
138#ifdef _CERTBCLI_TYPECHECK
139  FNCERTSRVBACKUPREAD *pfnCertSrvBackupRead = CertSrvBackupRead;
140#endif
141
142  typedef HRESULT (WINAPI FNCERTSRVBACKUPCLOSE)(HCSBC hbc);
143
144  HRESULT CERTBCLI_API CertSrvBackupClose(HCSBC hbc);
145
146#ifdef _CERTBCLI_TYPECHECK
147  FNCERTSRVBACKUPCLOSE *pfnCertSrvBackupClose = CertSrvBackupClose;
148#endif
149
150  typedef HRESULT (WINAPI FNCERTSRVBACKUPGETBACKUPLOGSW)(HCSBC hbc,WCHAR **ppwszzBackupLogFiles,DWORD *pcbSize);
151
152  HRESULT CERTBCLI_API CertSrvBackupGetBackupLogsW(HCSBC hbc,WCHAR **ppwszzBackupLogFiles,DWORD *pcbSize);
153
154#ifdef _CERTBCLI_TYPECHECK
155  FNCERTSRVBACKUPGETBACKUPLOGSW *pfnCertSrvBackupGetBackupLogs = CertSrvBackupGetBackupLogs;
156#endif
157
158  typedef HRESULT (WINAPI FNCERTSRVBACKUPTRUNCATELOGS)(HCSBC hbc);
159
160  HRESULT CERTBCLI_API CertSrvBackupTruncateLogs(HCSBC hbc);
161
162#ifdef _CERTBCLI_TYPECHECK
163  FNCERTSRVBACKUPTRUNCATELOGS *pfnCertSrvBackupTruncateLogs = CertSrvBackupTruncateLogs;
164#endif
165
166  typedef HRESULT (WINAPI FNCERTSRVBACKUPEND)(HCSBC hbc);
167
168  HRESULT CERTBCLI_API CertSrvBackupEnd(HCSBC hbc);
169
170#ifdef _CERTBCLI_TYPECHECK
171  FNCERTSRVBACKUPEND *pfnCertSrvBackupEnd = CertSrvBackupEnd;
172#endif
173
174  typedef VOID (WINAPI FNCERTSRVBACKUPFREE)(VOID *pv);
175
176  VOID CERTBCLI_API CertSrvBackupFree(VOID *pv);
177
178#ifdef _CERTBCLI_TYPECHECK
179  FNCERTSRVBACKUPFREE *pfnCertSrvBackupFree = CertSrvBackupFree;
180#endif
181
182  typedef HRESULT (WINAPI FNCERTSRVRESTOREGETDATABASELOCATIONSW)(HCSBC hbc,WCHAR **ppwszzDatabaseLocationList,DWORD *pcbSize);
183
184  HRESULT CERTBCLI_API CertSrvRestoreGetDatabaseLocationsW(HCSBC hbc,WCHAR **ppwszzDatabaseLocationList,DWORD *pcbSize);
185
186#ifdef _CERTBCLI_TYPECHECK
187  FNCERTSRVRESTOREGETDATABASELOCATIONSW *pfnCertSrvRestoreGetDatabaseLocations = CertSrvRestoreGetDatabaseLocations;
188#endif
189
190  typedef HRESULT (WINAPI FNCERTSRVRESTOREPREPAREW)(WCHAR const *pwszServerName,ULONG dwRestoreFlags,HCSBC *phbc);
191
192  HRESULT CERTBCLI_API CertSrvRestorePrepareW(WCHAR const *pwszServerName,ULONG dwRestoreFlags,HCSBC *phbc);
193
194#ifdef _CERTBCLI_TYPECHECK
195  FNCERTSRVRESTOREPREPAREW *pfnCertSrvRestorePrepare = CertSrvRestorePrepare;
196#endif
197
198  typedef HRESULT (WINAPI FNCERTSRVRESTOREREGISTERW)(HCSBC hbc,WCHAR const *pwszCheckPointFilePath,WCHAR const *pwszLogPath,CSEDB_RSTMAPW rgrstmap[],LONG crstmap,WCHAR const *pwszBackupLogPath,ULONG genLow,ULONG genHigh);
199
200  HRESULT CERTBCLI_API CertSrvRestoreRegisterW(HCSBC hbc,WCHAR const *pwszCheckPointFilePath,WCHAR const *pwszLogPath,CSEDB_RSTMAPW rgrstmap[],LONG crstmap,WCHAR const *pwszBackupLogPath,ULONG genLow,ULONG genHigh);
201  HRESULT CERTBCLI_API CertSrvRestoreRegisterThroughFile(HCSBC hbc,WCHAR const *pwszCheckPointFilePath,WCHAR const *pwszLogPath,CSEDB_RSTMAPW rgrstmap[],LONG crstmap,WCHAR const *pwszBackupLogPath,ULONG genLow,ULONG genHigh);
202
203#ifdef _CERTBCLI_TYPECHECK
204  FNCERTSRVRESTOREREGISTERW *pfnCertSrvRestoreRegister = CertSrvRestoreRegister;
205#endif
206
207  typedef HRESULT (WINAPI FNCERTSRVRESTOREREGISTERCOMPLETE)(HCSBC hbc,HRESULT hrRestoreState);
208
209  HRESULT CERTBCLI_API CertSrvRestoreRegisterComplete(HCSBC hbc,HRESULT hrRestoreState);
210
211#ifdef _CERTBCLI_TYPECHECK
212  FNCERTSRVRESTOREREGISTERCOMPLETE *pfnCertSrvRestoreRegisterComplete = CertSrvRestoreRegisterComplete;
213#endif
214
215  typedef HRESULT (WINAPI FNCERTSRVRESTOREEND)(HCSBC hbc);
216
217  HRESULT CERTBCLI_API CertSrvRestoreEnd(HCSBC hbc);
218
219#ifdef _CERTBCLI_TYPECHECK
220  FNCERTSRVRESTOREEND *pfnCertSrvRestoreEnd = CertSrvRestoreEnd;
221#endif
222
223#define CSCONTROL_SHUTDOWN 0x000000001
224#define CSCONTROL_SUSPEND 0x000000002
225#define CSCONTROL_RESTART 0x000000003
226
227  typedef HRESULT (WINAPI FNCERTSRVSERVERCONTROLW)(WCHAR const *pwszServerName,DWORD dwControlFlags,DWORD *pcbOut,BYTE **ppbOut);
228
229  HRESULT CERTBCLI_API CertSrvServerControlW(WCHAR const *pwszServerName,DWORD dwControlFlags,DWORD *pcbOut,BYTE **ppbOut);
230
231#ifdef _CERTBCLI_TYPECHECK
232  FNCERTSRVSERVERCONTROLW *pfnCertSrvServerControl = CertSrvServerControl;
233#endif
234
235#ifdef __cplusplus
236}
237#endif
238#endif