3.2.4.4.1.11 IVolumeClient::FTEnumLogicalDiskMembers (Opnum 14)

The FTEnumLogicalDiskMembers method enumerates the regions of a specified FT volume on basic disks (rather than dynamic disks).<47>

 HRESULT FTEnumLogicalDiskMembers(
   [in] LdmObjectId volumeId,
   [in, out] unsigned long* memberCount,
   [out, size_is(,*memberCount)] LdmObjectId** memberList
 );

volumeId: Specifies the OID of the volume for which regions are being enumerated.

memberCount: Pointer to the number of regions that the volume includes.

memberList: Pointer to an array of LdmObjectId objects that store member identification handles for the regions in the volume.

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 the FT volume specified by volumeId is in the list of storage objects.

  • Verify that memberCount and memberList 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 disk region objects belonging to the FT volume specified by volumeId from the list of storage objects.

  2. Allocate a buffer large enough to contain all the identifiers of the enumerated disk region objects.

  3. Populate the buffer with the identifiers of the disk region objects.

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

  5. The number of disk region OIDs in the buffer MUST be returned in the output parameter memberCount.

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

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