windows-nt/Source/XPSP1/NT/public/internal/drivers/inc/vscoordint.idl
2020-09-26 16:20:57 +08:00

212 lines
5.1 KiB
Plaintext

///////////////////////////////////////////////////////////////////////////////
//
// 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;
}
}