ntdsbcli.h 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135
  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 _NTDSBCLI_H_
  7. #define _NTDSBCLI_H_
  8. #include <_mingw_unicode.h>
  9. #ifdef __cplusplus
  10. extern "C" {
  11. #endif
  12. #define xRPC_STRING
  13. #ifndef __WCHAR_DEFINED
  14. #define __WCHAR_DEFINED
  15. typedef unsigned short WCHAR;
  16. #endif
  17. #ifndef _NTDSBCLI_DEFINED
  18. #define NTDSBCLI_API __declspec(dllimport) _stdcall
  19. #else
  20. #define NTDSBCLI_API
  21. #endif
  22. #ifndef _HRESULT_DEFINED
  23. #define _HRESULT_DEFINED
  24. typedef LONG HRESULT;
  25. #endif
  26. #define g_wszBackupAnnotation L"NTDS Backup Interface"
  27. #define g_aszBackupAnnotation "NTDS Backup Interface"
  28. #define g_wszRestoreAnnotation L"NTDS Restore Interface"
  29. #define g_aszRestoreAnnotation "NTDS Restore Interface"
  30. #if defined(UNICODE)
  31. #define g_szBackupAnnotation g_wszBackupAnnotation
  32. #define g_szRestoreAnnotation g_wszRestoreAnnotation
  33. #else
  34. #define g_szBackupAnnotation g_aszBackupAnnotation
  35. #define g_szRestoreAnnotation g_aszRestoreAnnotation
  36. #endif
  37. #define BACKUP_TYPE_FULL 0x01
  38. #define BACKUP_TYPE_LOGS_ONLY 0x02
  39. #define BACKUP_TYPE_INCREMENTAL 0x04
  40. #define RESTORE_TYPE_AUTHORATATIVE 0x01
  41. #define RESTORE_TYPE_ONLINE 0x02
  42. #define RESTORE_TYPE_CATCHUP 0x04
  43. #define BACKUP_DISABLE_INCREMENTAL 0xffffffff
  44. #if defined(UNICODE)
  45. typedef WCHAR BFT;
  46. #else
  47. typedef CHAR BFT;
  48. #endif
  49. #define BFT_DIRECTORY 0x80
  50. #define BFT_DATABASE_DIRECTORY 0x40
  51. #define BFT_LOG_DIRECTORY 0x20
  52. #define BFT_LOG (BFT)(TEXT('\x01') | BFT_LOG_DIRECTORY)
  53. #define BFT_LOG_DIR (BFT)(TEXT('\x02') | BFT_DIRECTORY)
  54. #define BFT_CHECKPOINT_DIR (BFT)(TEXT('\x03') | BFT_DIRECTORY)
  55. #define BFT_NTDS_DATABASE (BFT)(TEXT('\x04') | BFT_DATABASE_DIRECTORY)
  56. #define BFT_PATCH_FILE (BFT)(TEXT('\x05') | BFT_LOG_DIRECTORY)
  57. #define BFT_UNKNOWN (BFT)(TEXT('\x0f'))
  58. #include <ntdsbmsg.h>
  59. typedef void *HBC;
  60. typedef struct tagEDB_RSTMAPA {
  61. char *szDatabaseName;
  62. char *szNewDatabaseName;
  63. } EDB_RSTMAPA,*PEDB_RSTMAPA;
  64. #define UNICODE_RSTMAP
  65. typedef struct tagEDB_RSTMAPW {
  66. WCHAR *wszDatabaseName;
  67. WCHAR *wszNewDatabaseName;
  68. } EDB_RSTMAPW,*PEDB_RSTMAPW;
  69. #define EDB_RSTMAP __MINGW_NAME_AW(EDB_RSTMAP)
  70. #define PEDB_RSTMAP __MINGW_NAME_AW(PEDB_RSTMAP)
  71. #define DsIsNTDSOnline __MINGW_NAME_AW(DsIsNTDSOnline)
  72. #define DsBackupPrepare __MINGW_NAME_AW(DsBackupPrepare)
  73. #define DsBackupGetDatabaseNames __MINGW_NAME_AW(DsBackupGetDatabaseNames)
  74. #define DsBackupOpenFile __MINGW_NAME_AW(DsBackupOpenFile)
  75. #define DsBackupGetBackupLogs __MINGW_NAME_AW(DsBackupGetBackupLogs)
  76. #define DsRestoreGetDatabaseLocations __MINGW_NAME_AW(DsRestoreGetDatabaseLocations)
  77. #define DsRestorePrepare __MINGW_NAME_AW(DsRestorePrepare)
  78. #define DsRestoreRegister __MINGW_NAME_AW(DsRestoreRegister)
  79. #define DsSetCurrentBackupLog __MINGW_NAME_AW(DsSetCurrentBackupLog)
  80. #define DsSetAuthIdentity __MINGW_NAME_AW(DsSetAuthIdentity)
  81. HRESULT NTDSBCLI_API DsIsNTDSOnlineA(LPCSTR szServerName,WINBOOL *pfNTDSOnline);
  82. HRESULT NTDSBCLI_API DsIsNTDSOnlineW(LPCWSTR szServerName,WINBOOL *pfNTDSOnline);
  83. HRESULT NTDSBCLI_API DsBackupPrepareA(LPCSTR szBackupServer,ULONG grbit,ULONG btFlag,PVOID *ppvExpiryToken,LPDWORD pcbExpiryTokenSize,HBC *phbc);
  84. HRESULT NTDSBCLI_API DsBackupPrepareW(LPCWSTR szBackupServer,ULONG grbit,ULONG btFlag,PVOID *ppvExpiryToken,LPDWORD pcbExpiryTokenSize,HBC *phbc);
  85. HRESULT NTDSBCLI_API DsBackupGetDatabaseNamesA(HBC hbc,LPSTR *pszAttachmentInfo,LPDWORD pcbSize);
  86. HRESULT NTDSBCLI_API DsBackupGetDatabaseNamesW(HBC hbc,LPWSTR *pszAttachmentInfo,LPDWORD pcbSize);
  87. HRESULT NTDSBCLI_API DsBackupOpenFileA(HBC hbc,LPCSTR szAttachmentName,DWORD cbReadHintSize,LARGE_INTEGER *pliFileSize);
  88. HRESULT NTDSBCLI_API DsBackupOpenFileW(HBC hbc,LPCWSTR szAttachmentName,DWORD cbReadHintSize,LARGE_INTEGER *pliFileSize);
  89. HRESULT NTDSBCLI_API DsBackupRead(HBC hbc,PVOID pvBuffer,DWORD cbBuffer,PDWORD pcbRead);
  90. HRESULT NTDSBCLI_API DsBackupClose(HBC hbc);
  91. HRESULT NTDSBCLI_API DsBackupGetBackupLogsA(HBC hbc,LPSTR *pszBackupLogFiles,LPDWORD pcbSize);
  92. HRESULT NTDSBCLI_API DsBackupGetBackupLogsW(HBC hbc,LPWSTR *pszBackupLogFiles,LPDWORD pcbSize);
  93. HRESULT NTDSBCLI_API DsBackupTruncateLogs(HBC hbc);
  94. HRESULT NTDSBCLI_API DsBackupEnd(HBC hbc);
  95. VOID NTDSBCLI_API DsBackupFree(PVOID pvBuffer);
  96. HRESULT NTDSBCLI_API DsRestoreGetDatabaseLocationsA(HBC hbc,LPSTR *pszDatabaseLocationList,LPDWORD pcbSize);
  97. HRESULT NTDSBCLI_API DsRestoreGetDatabaseLocationsW(HBC hbc,LPWSTR *pszDatabaseLocationList,LPDWORD pcbSize);
  98. HRESULT NTDSBCLI_API DsRestorePrepareA(LPCSTR szServerName,ULONG rtFlag,PVOID pvExpiryToken,DWORD cbExpiryTokenSize,HBC *phbc);
  99. HRESULT NTDSBCLI_API DsRestorePrepareW(LPCWSTR szServerName,ULONG rtFlag,PVOID pvExpiryToken,DWORD cbExpiryTokenSize,HBC *phbc);
  100. HRESULT NTDSBCLI_API DsRestoreRegisterA(HBC hbc,LPCSTR szCheckPointFilePath,LPCSTR szLogPath,EDB_RSTMAPA rgrstmap[],LONG crstmap,LPCSTR szBackupLogPath,ULONG genLow,ULONG genHigh);
  101. HRESULT NTDSBCLI_API DsRestoreRegisterW(HBC hbc,LPCWSTR szCheckPointFilePath,LPCWSTR szLogPath,EDB_RSTMAPW rgrstmap[],LONG crstmap,LPCWSTR szBackupLogPath,ULONG genLow,ULONG genHigh);
  102. HRESULT NTDSBCLI_API DsRestoreRegisterComplete(HBC hbc,HRESULT hrRestoreState);
  103. HRESULT NTDSBCLI_API DsRestoreEnd(HBC hbc);
  104. HRESULT NTDSBCLI_API DsSetCurrentBackupLogA(LPCSTR szServerName,DWORD dwCurrentLog);
  105. HRESULT NTDSBCLI_API DsSetCurrentBackupLogW(LPCWSTR szServerName,DWORD dwCurrentLog);
  106. HRESULT NTDSBCLI_API DsSetAuthIdentityA(LPCSTR szUserName,LPCSTR szDomainName,LPCSTR szPassword);
  107. HRESULT NTDSBCLI_API DsSetAuthIdentityW(LPCWSTR szUserName,LPCWSTR szDomainName,LPCWSTR szPassword);
  108. #ifdef __cplusplus
  109. }
  110. #endif
  111. #endif