A requester should select a specific provider only if it has some information about the providers available.
Because this will not generally be the case, it is recommended that a requester supply GUID_NULL as a provider ID to IVssBackupComponents::AddToSnapshotSet, which allows the system to choose a provider according to the following algorithm:
- If a hardware provider that supports the given volume is available, it is selected.
- If no hardware provider is available, then if any software provider specific to the given volume is available, it is selected.
- If no hardware provider and no software provider specific to the volumes is available, the system provider is selected.
However, a requester can obtain information about available providers by using IVssBackupComponents::Query. With this information, and only if the backup application has a good understanding of the various providers, a requester can supply a valid provider ID to IVssBackupComponents::AddToSnapshotSet.
Note that all volumes do not need to have the same provider.