mirror of https://github.com/tongzx/nt5src
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.
211 lines
5.1 KiB
211 lines
5.1 KiB
///////////////////////////////////////////////////////////////////////////////
|
|
//
|
|
// Copyright (c) 2000 Microsoft Corporation
|
|
//
|
|
|
|
|
|
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
// Imports
|
|
//
|
|
|
|
|
|
import "oaidl.idl";
|
|
import "ocidl.idl";
|
|
import "vss.idl";
|
|
|
|
|
|
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
// Interfaces
|
|
//
|
|
|
|
|
|
[
|
|
object,
|
|
uuid(93BA4344-AA56-403e-87F2-819650FEDACD),
|
|
helpstring("IVssCoordinator interface"),
|
|
pointer_default(unique)
|
|
]
|
|
interface IVssCoordinator : IUnknown
|
|
{
|
|
[helpstring("method SetContext")]
|
|
HRESULT SetContext(
|
|
[in] LONG lContext
|
|
);
|
|
|
|
[helpstring("method StartSnapshotSet")]
|
|
HRESULT StartSnapshotSet(
|
|
[out] VSS_ID* pSnapshotSetId
|
|
);
|
|
|
|
[helpstring("method AddToSnapshotSet")]
|
|
HRESULT AddToSnapshotSet(
|
|
[in] VSS_PWSZ pwszVolumeName,
|
|
[in] VSS_ID ProviderId,
|
|
[out] VSS_ID *pSnapshotId
|
|
);
|
|
|
|
[helpstring("method DoSnapshotSet")]
|
|
HRESULT DoSnapshotSet(
|
|
[in] IDispatch *pWriterCallback,
|
|
[out] IVssAsync** ppAsync
|
|
);
|
|
|
|
[helpstring("method GetSnapshotProperties")]
|
|
HRESULT GetSnapshotProperties(
|
|
[in] VSS_ID SnapshotId,
|
|
[out] VSS_SNAPSHOT_PROP *pProp
|
|
);
|
|
|
|
[helpstring("method ExposeSnapshot")]
|
|
HRESULT ExposeSnapshot(
|
|
[in] VSS_ID SnapshotId,
|
|
[in] VSS_PWSZ wszPathFromRoot,
|
|
[in] LONG lAttributes,
|
|
[in] VSS_PWSZ wszExpose,
|
|
[out] VSS_PWSZ *pwszExposed
|
|
);
|
|
|
|
[helpstring("method RemountReadWrite")]
|
|
HRESULT RemountReadWrite(
|
|
[in] VSS_ID SnapshotId,
|
|
[out] IVssAsync** ppAsync
|
|
);
|
|
|
|
[helpstring("method ImportSnapshots")]
|
|
HRESULT ImportSnapshots(
|
|
[in] BSTR bstrXMLSnapshotSet,
|
|
[out] IVssAsync** ppAsync
|
|
);
|
|
|
|
[helpstring("method Query")]
|
|
HRESULT Query(
|
|
[in] VSS_ID QueriedObjectId,
|
|
[in] VSS_OBJECT_TYPE eQueriedObjectType,
|
|
[in] VSS_OBJECT_TYPE eReturnedObjectsType,
|
|
[out] IVssEnumObject **ppEnum
|
|
);
|
|
|
|
[helpstring("method DeleteSnapshots")]
|
|
HRESULT DeleteSnapshots(
|
|
[in] VSS_ID SourceObjectId,
|
|
[in] VSS_OBJECT_TYPE eSourceObjectType,
|
|
[in] BOOL bForceDelete,
|
|
[out] LONG* plDeletedSnapshots,
|
|
[out] VSS_ID* pNondeletedSnapshotID
|
|
);
|
|
|
|
[helpstring("method BreakSnapshotSet")]
|
|
HRESULT BreakSnapshotSet(
|
|
[in] VSS_ID SnapshotSetId
|
|
);
|
|
|
|
[helpstring("method IsVolumeSupported")]
|
|
HRESULT IsVolumeSupported(
|
|
[in] VSS_ID ProviderId,
|
|
[in] VSS_PWSZ pwszVolumeName,
|
|
[out] BOOL * pbSupportedByThisProvider
|
|
);
|
|
|
|
[helpstring("method IsVolumeSnapshotted")]
|
|
HRESULT IsVolumeSnapshotted(
|
|
[in] VSS_ID ProviderId,
|
|
[in] VSS_PWSZ pwszVolumeName,
|
|
[out] BOOL * pbSnapshotsPresent,
|
|
[out] LONG * plSnapshotCompatibility
|
|
);
|
|
|
|
[helpstring("method SetWriterInstances")]
|
|
HRESULT SetWriterInstances(
|
|
[in] LONG lWriterInstanceIdCount,
|
|
[in, unique, size_is(lWriterInstanceIdCount)]
|
|
VSS_ID *rgWriterInstanceId
|
|
);
|
|
};
|
|
|
|
|
|
[
|
|
object,
|
|
uuid(D6222095-05C3-42f3-81D9-A4A0CEC05C26),
|
|
helpstring("IVssShim interface"),
|
|
pointer_default(unique)
|
|
]
|
|
interface IVssShim : IUnknown
|
|
{
|
|
[helpstring("method SimulateSnapshotFreeze")]
|
|
HRESULT SimulateSnapshotFreeze(
|
|
[in] VSS_ID guidSnapshotSetId,
|
|
[in] ULONG ulOptionFlags,
|
|
[in] ULONG ulVolumeCount,
|
|
[in, unique, size_is(ulVolumeCount, ) ]
|
|
VSS_PWSZ* ppwszVolumeNamesArray,
|
|
[out] IVssAsync** ppAsync
|
|
);
|
|
|
|
[helpstring("method SimulateSnapshotThaw")]
|
|
HRESULT SimulateSnapshotThaw(
|
|
[in] VSS_ID guidSnapshotSetId
|
|
);
|
|
|
|
[helpstring("method WaitForSubscribingCompletion")]
|
|
HRESULT WaitForSubscribingCompletion();
|
|
};
|
|
|
|
|
|
[
|
|
object,
|
|
uuid(77ED5996-2F63-11d3-8A39-00C04F72D8E3),
|
|
helpstring("IVssAdmin interface"),
|
|
pointer_default(unique)
|
|
]
|
|
interface IVssAdmin : IUnknown
|
|
{
|
|
[helpstring("method RegisterProvider")]
|
|
HRESULT RegisterProvider(
|
|
[in] VSS_ID pProviderId,
|
|
[in] CLSID ClassId,
|
|
[in] VSS_PWSZ pwszProviderName,
|
|
[in] VSS_PROVIDER_TYPE eProviderType,
|
|
[in] VSS_PWSZ pwszProviderVersion,
|
|
[in] VSS_ID ProviderVersionId
|
|
);
|
|
|
|
[helpstring("method UnregisterProvider")]
|
|
HRESULT UnregisterProvider(
|
|
[in] VSS_ID ProviderId
|
|
);
|
|
|
|
[helpstring("method QueryProviders")]
|
|
HRESULT QueryProviders(
|
|
[out] IVssEnumObject**ppEnum
|
|
);
|
|
|
|
[helpstring("method AbortAllSnapshotsInProgress")]
|
|
HRESULT AbortAllSnapshotsInProgress(
|
|
);
|
|
};
|
|
|
|
|
|
////////////////////////////////////////////////////////
|
|
// VSS Type Library
|
|
|
|
[
|
|
uuid(97AEFDD8-2F60-11d3-8A39-00C04F72D8E3),
|
|
version(1.0),
|
|
helpstring("Volume Shadow Copy Service 1.0 Type Library")
|
|
]
|
|
library VSS
|
|
{
|
|
importlib("stdole2.tlb");
|
|
|
|
[
|
|
uuid(E579AB5F-1CC4-44b4-BED9-DE0991FF0623),
|
|
helpstring("VSSCoordinator Class")
|
|
]
|
|
coclass VSSCoordinator
|
|
{
|
|
[default] interface IVssCoordinator;
|
|
interface IVssAdmin;
|
|
}
|
|
}
|