All VDS objects that are listed in Storage Management Objects--except for the service object--are returned by means of enumeration objects. For an example of how these objects are created and used, see section 4.3.

When the client calls a method to request an enumeration, the server creates an enumeration object that implements the IEnumVdsObject interface and returns the interface pointer to the client to allow it to enumerate through the requested objects. The server maintains this object until the client releases all references to the interface. For each enumeration object, the server maintains the following information:

Objects Being Enumerated: A list of pointers to the VDS objects being enumerated.

Index: A value that keeps track of which object to return next to the client, when the client requests more objects from the enumeration.