3.2.4.4.1.22 IVolumeClient::GetInstalledFileSystems (Opnum 25)

The GetInstalledFileSystems method enumerates the file system types (for example, FAT or NTFS) that the server supports.

 HRESULT GetInstalledFileSystems(
   [out] unsigned long* fsCount,
   [out, size_is(,*fsCount)] IFILE_SYSTEM_INFO** fsList
 );

fsCount: Pointer to the number of elements returned in fsList.

fsList: Pointer to an array of IFILE_SYSTEM_INFO structures. Memory for the array is allocated by the server and freed by the client.

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]; 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:

  1. Verify that fsCount and fsList 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 file system types supported by the system.

  2. Allocate a buffer large enough to contain IFILE_SYSTEM_INFO structures that describe all enumerated file system types.

  3. Populate each IFILE_SYSTEM_INFO structure in the buffer with information about the file system type.

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

  5. The number of IFILE_SYSTEM_INFO structures in the buffer MUST be returned in the output parameter fsCount.

  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.