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.

134 lines
3.3 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 "vscoordint.h"
  21. #include "vsevent.h"
  22. #include "vsprov.h"
  23. #include "vsswprv.h"
  24. // Declaring the IVssSnapshotProvider
  25. // This needs to be used only from VSS, as a wrapper around software and hardware providers
  26. interface IVssSnapshotProvider: public IUnknown
  27. {
  28. // IVssSoftwareSnapshotProvider
  29. STDMETHOD(SetContext)(
  30. IN LONG lContext
  31. ) PURE;
  32. STDMETHOD(GetSnapshotProperties)(
  33. IN VSS_ID SnapshotId,
  34. OUT VSS_SNAPSHOT_PROP *pProp
  35. ) PURE;
  36. STDMETHOD(Query)(
  37. IN VSS_ID QueriedObjectId,
  38. IN VSS_OBJECT_TYPE eQueriedObjectType,
  39. IN VSS_OBJECT_TYPE eReturnedObjectsType,
  40. OUT IVssEnumObject**ppEnum
  41. ) PURE;
  42. STDMETHOD(DeleteSnapshots)(
  43. IN VSS_ID SourceObjectId,
  44. IN VSS_OBJECT_TYPE eSourceObjectType,
  45. IN BOOL bForceDelete,
  46. OUT LONG* plDeletedSnapshots,
  47. OUT VSS_ID* pNondeletedSnapshotID
  48. ) PURE;
  49. STDMETHOD(BeginPrepareSnapshot)(
  50. IN VSS_ID SnapshotSetId,
  51. IN VSS_ID SnapshotId,
  52. IN VSS_PWSZ pwszVolumeName,
  53. IN LONG lNewContext
  54. ) PURE;
  55. STDMETHOD(IsVolumeSupported)(
  56. IN VSS_PWSZ pwszVolumeName,
  57. OUT BOOL * pbSupportedByThisProvider
  58. ) PURE;
  59. STDMETHOD(IsVolumeSnapshotted)(
  60. IN VSS_PWSZ pwszVolumeName,
  61. OUT BOOL * pbSnapshotsPresent,
  62. OUT LONG * plSnapshotCompatibility
  63. ) PURE;
  64. STDMETHOD(RevertToSnapshot)(
  65. IN VSS_ID SnapshotId
  66. ) PURE;
  67. STDMETHOD(QueryRevertStatus)(
  68. IN VSS_PWSZ pwszVolume,
  69. OUT IVssAsync** ppAsync
  70. ) PURE;
  71. // IVssHardwareSnapshotProvider
  72. // TBD
  73. // IVssProviderCreateSnapshotSet
  74. STDMETHOD(EndPrepareSnapshots)(
  75. IN VSS_ID SnapshotSetId
  76. ) PURE;
  77. STDMETHOD(PreCommitSnapshots)(
  78. IN VSS_ID SnapshotSetId
  79. ) PURE;
  80. STDMETHOD(CommitSnapshots)(
  81. IN VSS_ID SnapshotSetId
  82. ) PURE;
  83. STDMETHOD(PostCommitSnapshots)(
  84. IN VSS_ID SnapshotSetId,
  85. IN LONG lSnapshotsCount
  86. ) PURE;
  87. STDMETHOD(AbortSnapshots)(
  88. IN VSS_ID SnapshotSetId
  89. ) PURE;
  90. // IVssProviderNotifications
  91. STDMETHOD(OnUnload)(
  92. IN BOOL bForceUnload
  93. ) PURE;
  94. };
  95. #endif // __VSS_IDL_HXX__