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.

252 lines
7.8 KiB

  1. ///////////////////////////////////////////////////////////////////////////////
  2. //
  3. // Copyright (c) 2000 Microsoft Corporation
  4. //
  5. ///////////////////////////////////////////////////////////////////////////////
  6. // Imports
  7. //
  8. import "oaidl.idl";
  9. import "ocidl.idl";
  10. import "vss.idl";
  11. import "vdslun.idl";
  12. ///////////////////////////////////////////////////////////////////////////////
  13. // Forward declarations
  14. //
  15. // interfaces supported by the provider
  16. interface IVssSnapshotProvider;
  17. interface IVssProviderNotifications;
  18. typedef VSS_PWSZ *PVSS_PWSZ;
  19. ///////////////////////////////////////////////////////////////////////////////
  20. // Interfaces
  21. //
  22. [
  23. object,
  24. uuid(609e123e-2c5a-44d3-8f01-0b1d9a47d1ff),
  25. helpstring("IVssSoftwareSnapshotProvider interface"),
  26. pointer_default(unique)
  27. ]
  28. interface IVssSoftwareSnapshotProvider : IUnknown
  29. {
  30. [helpstring("method SetContext")]
  31. HRESULT SetContext(
  32. [in] LONG lContext
  33. );
  34. [helpstring("method GetSnapshot")]
  35. HRESULT GetSnapshotProperties(
  36. [in] VSS_ID SnapshotId,
  37. [out] VSS_SNAPSHOT_PROP *pProp
  38. );
  39. [helpstring("method Query")]
  40. HRESULT Query(
  41. [in] VSS_ID QueriedObjectId,
  42. [in] VSS_OBJECT_TYPE eQueriedObjectType,
  43. [in] VSS_OBJECT_TYPE eReturnedObjectsType,
  44. [out] IVssEnumObject **ppEnum
  45. );
  46. [helpstring("method DeleteSnapshots")]
  47. HRESULT DeleteSnapshots(
  48. [in] VSS_ID SourceObjectId,
  49. [in] VSS_OBJECT_TYPE eSourceObjectType,
  50. [in] BOOL bForceDelete,
  51. [out] LONG* plDeletedSnapshots,
  52. [out] VSS_ID* pNondeletedSnapshotID
  53. );
  54. [helpstring("method BeginPrepareSnapshot")]
  55. HRESULT BeginPrepareSnapshot(
  56. [in] VSS_ID SnapshotSetId,
  57. [in] VSS_ID SnapshotId,
  58. [in] VSS_PWSZ pwszVolumeName,
  59. [in] LONG lNewContext
  60. );
  61. [helpstring("method IsVolumeSupported")]
  62. HRESULT IsVolumeSupported(
  63. [in] VSS_PWSZ pwszVolumeName,
  64. [out] BOOL * pbSupportedByThisProvider
  65. );
  66. [helpstring("method IsVolumeSnapshotted")]
  67. HRESULT IsVolumeSnapshotted(
  68. [in] VSS_PWSZ pwszVolumeName,
  69. [out] BOOL * pbSnapshotsPresent,
  70. [out] LONG * plSnapshotCompatibility
  71. );
  72. [helpstring("method SetSnapshotProperty")]
  73. HRESULT SetSnapshotProperty (
  74. [in] VSS_ID SnapshotId,
  75. [in] VSS_SNAPSHOT_PROPERTY_ID eSnapshotPropertyId,
  76. [in] VARIANT vProperty
  77. );
  78. [helpstring("method RevertToSnapshot")]
  79. HRESULT RevertToSnapshot(
  80. [in] VSS_ID SnapshotId
  81. );
  82. [helpstring("method QueryRevertStatus")]
  83. HRESULT QueryRevertStatus(
  84. [in] VSS_PWSZ pwszVolume,
  85. [out] IVssAsync** ppAsync
  86. );
  87. };
  88. [
  89. object,
  90. uuid(5F894E5B-1E39-4778-8E23-9ABAD9F0E08C),
  91. helpstring("IVssProviderCreateSnapshotSet interface"),
  92. pointer_default(unique)
  93. ]
  94. interface IVssProviderCreateSnapshotSet : IUnknown
  95. {
  96. [helpstring("method EndPrepareSnapshots")]
  97. HRESULT EndPrepareSnapshots(
  98. [in] VSS_ID SnapshotSetId
  99. );
  100. [helpstring("method PreCommitSnapshots")]
  101. HRESULT PreCommitSnapshots(
  102. [in] VSS_ID SnapshotSetId
  103. );
  104. [helpstring("method CommitSnapshots")]
  105. HRESULT CommitSnapshots(
  106. [in] VSS_ID SnapshotSetId
  107. );
  108. [helpstring("method PostCommitSnapshots")]
  109. HRESULT PostCommitSnapshots(
  110. [in] VSS_ID SnapshotSetId,
  111. [in] LONG lSnapshotsCount
  112. );
  113. [helpstring("method PreFinalCommitSnapshots")]
  114. HRESULT PreFinalCommitSnapshots(
  115. [in] VSS_ID SnapshotSetId
  116. );
  117. [helpstring("method PostFinalCommitSnapshots")]
  118. HRESULT PostFinalCommitSnapshots(
  119. [in] VSS_ID SnapshotSetId
  120. );
  121. [helpstring("method AbortSnapshots")]
  122. HRESULT AbortSnapshots(
  123. [in] VSS_ID SnapshotSetId
  124. );
  125. };
  126. [
  127. object,
  128. uuid(E561901F-03A5-4afe-86D0-72BAEECE7004),
  129. helpstring("IVssProviderNotifications interface"),
  130. pointer_default(unique)
  131. ]
  132. interface IVssProviderNotifications : IUnknown
  133. {
  134. [helpstring("method OnLoad")]
  135. HRESULT OnLoad(
  136. [in,unique] IUnknown* pCallback
  137. );
  138. [helpstring("method OnUnload")]
  139. HRESULT OnUnload(
  140. [in] BOOL bForceUnload
  141. );
  142. };
  143. [
  144. object,
  145. uuid(9593A157-44E9-4344-BBEB-44FBF9B06B10),
  146. helpstring("IVssHardwareSnapshotProvider interface"),
  147. pointer_default(unique)
  148. ]
  149. interface IVssHardwareSnapshotProvider : IUnknown
  150. {
  151. [helpstring("method AreLunsSupported")]
  152. HRESULT AreLunsSupported (
  153. [in] LONG lLunCount,
  154. [in] LONG lContext,
  155. [in, unique, size_is(lLunCount)] VSS_PWSZ *rgwszDevices,
  156. [in, out, size_is(lLunCount)] VDS_LUN_INFORMATION *pLunInformation,
  157. [out] BOOL *pbIsSupported
  158. );
  159. [helpstring("method FillInLunInfo")]
  160. HRESULT FillInLunInfo (
  161. [in] VSS_PWSZ wszDeviceName,
  162. [in, out] VDS_LUN_INFORMATION *pLunInfo,
  163. [out] BOOL *pbIsSupported
  164. );
  165. [helpstring("method BeginPrepareSnapshot")]
  166. HRESULT BeginPrepareSnapshot(
  167. [in] VSS_ID SnapshotSetId,
  168. [in] VSS_ID SnapshotId,
  169. [in] LONG lContext,
  170. [in] LONG lLunCount,
  171. [in, unique, size_is(lLunCount)] VSS_PWSZ *rgDeviceNames,
  172. [in, out, size_is(lLunCount)] VDS_LUN_INFORMATION *rgLunInformation
  173. );
  174. [helpstring("method GetTargetLuns")]
  175. HRESULT GetTargetLuns(
  176. [in] LONG lLunCount,
  177. [in, unique, size_is(lLunCount)] VSS_PWSZ *rgDeviceNames,
  178. [in, unique, size_is(lLunCount)] VDS_LUN_INFORMATION *rgSourceLuns,
  179. [in, out, size_is(lLunCount)] VDS_LUN_INFORMATION *rgDestinationLuns
  180. );
  181. [helpstring("method LocateLuns")]
  182. HRESULT LocateLuns(
  183. [in] LONG lLunCount,
  184. [in, unique, size_is(lLunCount)]
  185. VDS_LUN_INFORMATION *rgSourceLuns
  186. );
  187. [helpstring("OnLunEmpty")]
  188. HRESULT OnLunEmpty (
  189. [in, unique] VSS_PWSZ wszDeviceName,
  190. [in, unique] VDS_LUN_INFORMATION *pInformation
  191. );
  192. };
  193. ////////////////////////////////////////////////////////
  194. // VSS Type Library
  195. [
  196. uuid(73C8B4C1-6E9D-4fc2-B304-030EC763FE81),
  197. version(1.0),
  198. helpstring("Volume Shadow Copy Service Provider 1.0 Type Library")
  199. ]
  200. library VSSProvider
  201. {
  202. importlib("stdole2.tlb");
  203. }