Helper Objects
[Beginning with Windows 8 and Windows Server 2012, the Virtual Disk Service COM interface is superseded by the Windows Storage Management API.]
VDS provides two helper objects: the enumeration object and the async object. This topic describes each of these objects and provides links to examples of how callers work with each.
An enumeration object enumerates through a set of VDS objects of a given type. Objects can be providers, subsystems, controllers, LUNs, LUN plexes, drives, disk packs, disks, volumes, or volume plexes. Callers can get a pointer to a specific object by selecting the desired object from the enumeration that is returned by the appropriate method. For a code example, see Working with Enumeration Objects.
The following table lists related interfaces, enumerations, and structures.
Type | Element |
---|---|
Interfaces that are always exposed by this object | IEnumVdsObject |
Associated enumerations | None. |
Associated structures | None. |
An async object manages asynchronous operations. Methods that initiate asynchronous operations return a pointer to an IVdsAsync interface, which allows the caller to cancel, wait for, and query the status of the asynchronous operation.
Long-running VDS operations tend to be implemented asynchronously. The basic and dynamic software provider programs implement asynchronous methods consistently for volume, partition, and disk operations. Hardware providers optionally implement async-related methods asynchronously. Regardless of how the provider implements the method, the operation must return a pointer to an IVdsAsync interface to the caller. For a code example, see Managing Asynchronous Operations.
Asynchronous operations include:
- Creating a LUN, volume, or partition.
- Formatting a volume or partition.
- Adding or removing a LUN or volume plex.
- Breaking a volume plex.
- Extending or shrinking a LUN or volume.
- Recovering a LUN or volume.
- Cleaning a disk.
- Replacing a disk.
The following table lists related interfaces, enumerations, and structures.
Type | Element |
---|---|
Interfaces that are always exposed by this object | IVdsAsync |
Associated enumerations | None. |
Associated structures | None. |