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.

Enumeration Object

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.

 

Async Object

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.

 

VDS Object Model

IVdsAsync

Working with Enumeration Objects

Managing Asynchronous Operations