Leaked source code of windows server 2003
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.

181 lines
4.4 KiB

  1. /*++
  2. Copyright (c) 1999 Microsoft Corporation
  3. Module Name:
  4. vs_idl.hxx
  5. Abstract:
  6. Includes the VSS IDLs
  7. Author:
  8. Adi Oltean [aoltean] 04/11/2001
  9. Revision History:
  10. Name Date Comments
  11. aoltean 04/11/2001 Created
  12. --*/
  13. #ifndef __VSS_IDL_HXX__
  14. #define __VSS_IDL_HXX__
  15. #if _MSC_VER > 1000
  16. #pragma once
  17. #endif
  18. #include <objbase.h>
  19. #include "vss.h"
  20. #include "vdslun.h"
  21. #include "vscoordint.h"
  22. #include "vsevent.h"
  23. #include "vsprov.h"
  24. #include "vsswprv.h"
  25. #include "vsmgmt.h"
  26. // Declaring the IVssSnapshotProvider
  27. // This needs to be used only from VSS, as a wrapper around software and hardware providers
  28. interface IVssSnapshotProvider: public IUnknown
  29. {
  30. // Internal methods
  31. STDMETHOD(QueryInternalInterface)(
  32. IN REFIID iid,
  33. OUT void** pp
  34. ) PURE;
  35. // IVssSoftwareSnapshotProvider
  36. STDMETHOD(SetContext)(
  37. IN LONG lContext
  38. ) PURE;
  39. STDMETHOD(GetSnapshotProperties)(
  40. IN VSS_ID SnapshotId,
  41. OUT VSS_SNAPSHOT_PROP *pProp
  42. ) PURE;
  43. STDMETHOD(Query)(
  44. IN VSS_ID QueriedObjectId,
  45. IN VSS_OBJECT_TYPE eQueriedObjectType,
  46. IN VSS_OBJECT_TYPE eReturnedObjectsType,
  47. OUT IVssEnumObject**ppEnum
  48. ) PURE;
  49. STDMETHOD(DeleteSnapshots)(
  50. IN VSS_ID SourceObjectId,
  51. IN VSS_OBJECT_TYPE eSourceObjectType,
  52. IN BOOL bForceDelete,
  53. OUT LONG* plDeletedSnapshots,
  54. OUT VSS_ID* pNondeletedSnapshotID
  55. ) PURE;
  56. STDMETHOD(BeginPrepareSnapshot)(
  57. IN VSS_ID SnapshotSetId,
  58. IN VSS_ID SnapshotId,
  59. IN VSS_PWSZ pwszVolumeName,
  60. IN LONG lNewContext
  61. ) PURE;
  62. STDMETHOD(IsVolumeSupported)(
  63. IN VSS_PWSZ pwszVolumeName,
  64. OUT BOOL * pbSupportedByThisProvider
  65. ) PURE;
  66. STDMETHOD(IsVolumeSnapshotted)(
  67. IN VSS_PWSZ pwszVolumeName,
  68. OUT BOOL * pbSnapshotsPresent,
  69. OUT LONG * plSnapshotCompatibility
  70. ) PURE;
  71. STDMETHOD(SetSnapshotProperty)(
  72. IN VSS_ID SnapshotId,
  73. IN VSS_SNAPSHOT_PROPERTY_ID eSnapshotPropertyId,
  74. IN VARIANT vProperty
  75. ) PURE;
  76. STDMETHOD(RevertToSnapshot)(
  77. IN VSS_ID SnapshotId
  78. ) PURE;
  79. STDMETHOD(QueryRevertStatus)(
  80. IN VSS_PWSZ pwszVolume,
  81. OUT IVssAsync** ppAsync
  82. ) PURE;
  83. // IVssProviderCreateSnapshotSet
  84. STDMETHOD(EndPrepareSnapshots)(
  85. IN VSS_ID SnapshotSetId
  86. ) PURE;
  87. STDMETHOD(PreCommitSnapshots)(
  88. IN VSS_ID SnapshotSetId
  89. ) PURE;
  90. STDMETHOD(CommitSnapshots)(
  91. IN VSS_ID SnapshotSetId
  92. ) PURE;
  93. STDMETHOD(PostCommitSnapshots)(
  94. IN VSS_ID SnapshotSetId,
  95. IN LONG lSnapshotsCount
  96. ) PURE;
  97. STDMETHOD(PreFinalCommitSnapshots)(
  98. IN VSS_ID SnapshotSetId
  99. ) PURE;
  100. STDMETHOD(PostFinalCommitSnapshots)(
  101. IN VSS_ID SnapshotSetId
  102. ) PURE;
  103. STDMETHOD(PostSnapshot)(
  104. IN IDispatch *pCallback,
  105. IN bool *pbCancelled
  106. ) PURE;
  107. STDMETHOD(AbortSnapshots)(
  108. IN VSS_ID SnapshotSetId
  109. ) PURE;
  110. // miscellaneous methods
  111. STDMETHOD(BreakSnapshotSet)(
  112. IN VSS_ID SnapshotSetId
  113. ) PURE;
  114. STDMETHOD(SetExposureProperties)
  115. (
  116. IN VSS_ID SnapshotId,
  117. IN LONG lAttributes,
  118. IN LPCWSTR wszExposed,
  119. IN LPCWSTR wszExposedPath
  120. ) PURE;
  121. STDMETHOD(ImportSnapshotSet)(
  122. IN LPCWSTR wszXMLSnapshotSet,
  123. IN bool *pbCancel
  124. ) PURE;
  125. // IVssProviderNotifications
  126. STDMETHOD(OnLoad)(
  127. IN IUnknown* pCallback
  128. ) PURE;
  129. STDMETHOD(OnUnload)(
  130. IN BOOL bForceUnload
  131. ) PURE;
  132. };
  133. #endif // __VSS_IDL_HXX__