Source code of Windows XP (NT5)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

194 lines
4.9 KiB

  1. /*
  2. * ESEBACK2.H
  3. *
  4. * Contains declarations of additional definitions and interfaces
  5. * for the ESE server apps.
  6. */
  7. #ifndef _ESEBACK2_
  8. #define _ESEBACK2_
  9. //
  10. // Useful types.
  11. //
  12. typedef long ERR;
  13. typedef long HRESULT;
  14. #include "jet.h"
  15. #include "esebcli2.h"
  16. #define ESEBACK_API __stdcall
  17. #define ESEBACK_CALLBACK __stdcall
  18. #ifdef __cplusplus
  19. extern "C" {
  20. #endif
  21. #define IN
  22. #define OUT
  23. // Server API for backup and restore
  24. #ifndef ESE_REGISTER_BACKUP
  25. #define ESE_REGISTER_BACKUP 0x00000001
  26. #endif
  27. #ifndef ESE_REGISTER_ONLINE_RESTORE
  28. #define ESE_REGISTER_ONLINE_RESTORE 0x00000002
  29. #endif
  30. #ifndef ESE_REGISTER_OFFLINE_RESTORE
  31. #define ESE_REGISTER_OFFLINE_RESTORE 0x00000004
  32. #endif
  33. #ifndef ESE_REGISTER_SNAPSHOT_BACKUP
  34. #define ESE_REGISTER_SNAPSHOT_BACKUP 0x00000010
  35. #endif
  36. // this flag will determin that the HrESEGetNodes()
  37. // will be solved at ESEBACK2 level (return the list of Exchange
  38. // server from DS) not at server level using callback functions
  39. #ifndef ESE_REGISTER_EXCHANGE_SERVER
  40. #define ESE_REGISTER_EXCHANGE_SERVER 0x00000100
  41. #endif
  42. HRESULT ESEBACK_API HrESEBackupRestoreRegister(
  43. IN WCHAR * wszDisplayName,
  44. IN unsigned long fFlags,
  45. IN WCHAR * wszEndpointAnnotation,
  46. IN WCHAR * wszCallbackDll);
  47. HRESULT ESEBACK_API HrESEBackupRestoreUnregister( void );
  48. // Server API for restore/recover
  49. HRESULT ESEBACK_API HrESERecoverAfterRestore (
  50. IN WCHAR * wszRestoreLogPath,
  51. IN WCHAR * wszCheckpointFilePath,
  52. IN WCHAR * wszLogFilePath,
  53. IN WCHAR * wszTargetInstanceName);
  54. HRESULT ESEBACK_API HrESERecoverAfterRestore2 (
  55. WCHAR * wszRestoreLogPath,
  56. WCHAR * wszCheckpointFilePath,
  57. WCHAR * wszLogFilePath,
  58. WCHAR * wszTargetInstanceCheckpointFilePath,
  59. WCHAR * wszTargetInstanceLogPath
  60. );
  61. typedef struct _ESEBACK_CONTEXT
  62. {
  63. unsigned long cbSize;
  64. WCHAR * wszServerName;
  65. void * pvApplicationData;
  66. } ESEBACK_CONTEXT, * PESEBACK_CONTEXT;
  67. // callback function definitions for backup and restore
  68. typedef void (ESEBACK_CALLBACK *PfnESECBFree)(
  69. IN void * pv );
  70. typedef ERR (ESEBACK_CALLBACK *PfnErrESECBGetDatabasesInfo)(
  71. IN PESEBACK_CONTEXT pBackupContext,
  72. OUT unsigned long * pcInfo,
  73. OUT INSTANCE_BACKUP_INFO ** prgInfo,
  74. IN unsigned long fReserved
  75. );
  76. typedef ERR (ESEBACK_CALLBACK *PfnErrESECBFreeDatabasesInfo)(
  77. IN PESEBACK_CONTEXT pBackupContext,
  78. IN unsigned long cInfo,
  79. IN INSTANCE_BACKUP_INFO * rgInfo
  80. );
  81. // callback function definitions for backup
  82. typedef ERR (ESEBACK_CALLBACK *PfnErrESECBPrepareInstanceForBackup)(
  83. IN PESEBACK_CONTEXT pBackupContext,
  84. IN JET_INSTANCE ulInstanceId,
  85. IN void * pvReserved);
  86. #define BACKUP_DONE_FLAG_ABORT ESE_BACKUP_INSTANCE_END_ERROR
  87. #define BACKUP_DONE_FLAG_NORMAL ESE_BACKUP_INSTANCE_END_SUCCESS
  88. typedef ERR (ESEBACK_CALLBACK *PfnErrESECBDoneWithInstanceForBackup)(
  89. IN PESEBACK_CONTEXT pBackupContext,
  90. IN JET_INSTANCE ulInstanceId,
  91. IN unsigned long fComplete,
  92. IN void * pvReserved );
  93. typedef ERR (ESEBACK_CALLBACK *PfnErrESECBGetDependencyInfo)(
  94. IN PESEBACK_CONTEXT pBackupContext,
  95. IN JET_INSTANCE ulInstanceId,
  96. OUT void ** pvInfo,
  97. OUT unsigned long * pcbInfo,
  98. OUT WCHAR ** pwszAnnotations,
  99. IN void * pvReserved );
  100. // callback function definitions for restore
  101. #define RESTORE_OPEN_REOPEN 0x0001L
  102. #define RESTORE_OPEN_GET_PATH 0x0002L
  103. typedef ERR (ESEBACK_CALLBACK *PfnErrESECBRestoreOpen)(
  104. IN PESEBACK_CONTEXT pRestoreContext,
  105. IN unsigned long fFlags,
  106. IN WCHAR * wszSrcInstanceName,
  107. OUT WCHAR ** pwszRestorePath,
  108. IN void * pvReserved );
  109. #define RESTORE_CLOSE_FLAG_NORMAL 0x0001L
  110. #define RESTORE_CLOSE_FLAG_ABORT 0x0002L
  111. #define RESTORE_CLOSE_FLAG_RPC 0x0004L
  112. #define RESTORE_CLOSE_FLAG_COMPLETE_CALLED 0x0008L
  113. typedef ERR (ESEBACK_CALLBACK *PfnErrESECBRestoreClose)(
  114. IN PESEBACK_CONTEXT pRestoreContext,
  115. IN unsigned long fFlags,
  116. IN void * pvReserved );
  117. typedef ERR (ESEBACK_CALLBACK *PfnErrESECBRestoreGetDestination)(
  118. IN PESEBACK_CONTEXT pRestoreContext,
  119. IN WCHAR * wszDatabaseDisplayName,
  120. IN GUID guidDatabase,
  121. IN WCHAR * wszDatabaseFileNameS,
  122. IN WCHAR * wszDatabaseSLVFileNameS,
  123. OUT WCHAR ** pwszDatabaseFileNameD,
  124. OUT WCHAR ** pwszDatabaseSLVFileNameD,
  125. IN void * pvReserved );
  126. typedef ERR (ESEBACK_CALLBACK *PfnErrESECBRestoreComplete)(
  127. IN PESEBACK_CONTEXT pRestoreContext,
  128. IN WCHAR * wszRestorePath,
  129. IN unsigned long fFlags,
  130. IN void * pvReserved );
  131. // calback functions for nodes tree
  132. typedef ERR (ESEBACK_CALLBACK *PfnErrESECBGetNodes)(
  133. IN PESEBACK_CONTEXT pContext,
  134. OUT PBACKUP_NODE_TREE * ppBackupNodeTree,
  135. IN void * pvReserved );
  136. typedef VOID (ESEBACK_CALLBACK *PfnESECBFreeNodes)(
  137. IN PBACKUP_NODE_TREE pBackupNodeTree );
  138. typedef ERR (ESEBACK_CALLBACK *PfnErrESECBGetIcons)(
  139. IN PESEBACK_CONTEXT pContext,
  140. OUT ESE_ICON_DESCRIPTION * pDisplayIcon,
  141. OUT ESE_ICON_DESCRIPTION * pAnnotationIcon,
  142. IN void * pvReserved );
  143. #ifdef __cplusplus
  144. }
  145. #endif
  146. #endif // _ESEBACK2_