certbcli.h 8.3 KB

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