3.2.4.4.1.10 IVolumeClient::FTEnumVolumes (Opnum 13)

The FTEnumVolumes method enumerates the server's FT volumes on basic disks (rather than dynamic disks). <46>

 HRESULT FTEnumVolumes(
   [in, out] unsigned long* volumeCount,
   [out, size_is(,*volumeCount)] VOLUME_INFO** ftVolumeList
 );

volumeCount: Pointer to the number of elements in ftVolumeList.

ftVolumeList: Pointer to an array of VOLUME_INFO structures. The server allocates this memory and the client frees it.

Return Values: The method MUST return 0 or a nonerror HRESULT on success, or an implementation-specific nonzero error code on failure (as specified in [MS-ERREF] section 2.1; see also section 2.2.1 for HRESULT values predefined by the Disk Management Remote Protocol).

Upon receiving this message, the server MUST validate parameters:

  • Verify that volumeCount and ftVolumeList are not NULL.

If parameter validation fails, the server MUST fail the operation immediately, returning an appropriate error as its response to the client.

Otherwise, the server MUST compose a response to the client as follows:

  1. Enumerate all FT volume objects from the list of storage objects.

  2. Allocate a buffer large enough to contain VOLUME_INFO structures that describe all enumerated FT volumes.

  3. Populate each VOLUME_INFO structure in the buffer with information about the FT volume.

  4. The buffer MUST be returned to the client in the output parameter ftVolumeList.

  5.  The number of VOLUME_INFO structures in the buffer MUST be returned in the output parameter volumeCount.

  6. Return a response that contains the preceding output parameters and the status of the operation.

The server MUST NOT change the list of storage objects as part of processing this message.