Метод IVdsDisk3::QueryFreeExtents (vds.h)

[Начиная с Windows 8 и Windows Server 2012, COM-интерфейс службы виртуальных дисков замечается API управления хранилищем Windows.]

Возвращает свободные экстенты на диске и выравнивает их по указанному размеру выравнивания.

Синтаксис

HRESULT QueryFreeExtents(
  [in]  ULONG                ulAlign,
  [out] VDS_DISK_FREE_EXTENT **ppFreeExtentArray,
  [out] LONG                 *plNumberOfFreeExtents
);

Параметры

[in] ulAlign

Размер выравнивания в байтах. Это значение должно быть кратно размеру сектора диска. Если этот параметр равен нулю, используется значение выравнивания по умолчанию для тома. Выравнивание по умолчанию зависит от размера диска, на котором расположен том. Все разделы и тома выравниваются с помощью значений в следующем разделе реестра:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\vds\Alignment

Если этот раздел реестра не задан, выравнивание по умолчанию равно 1 МБ, если размер диска составляет 4 ГБ или больше, или 64 КБ, если диск меньше 4 ГБ.

[out] ppFreeExtentArray

Адрес переменной указателя, которая получает
массив VDS_DISK_FREE_EXTENT структур, по одной для каждого свободного экстента. Вызывающие элементы должны освободить этот массив с помощью функции CoTaskMemFree . Если свободных экстентов нет, для указателя устанавливается значение NULL на выходных данных и его не нужно освобождать.

[out] plNumberOfFreeExtents

Указатель на переменную, которая получает общее количество VDS_DISK_FREE_EXTENT структур. Если свободных экстентов нет, для указателя устанавливается значение NULL на выходных данных и его не нужно освобождать.

Возвращаемое значение

Этот метод может возвращать стандартные значения HRESULT, такие как E_INVALIDARG или E_OUTOFMEMORY, а также возвращаемые значения VDS. Он также может возвращать коды преобразованных системных ошибок с помощью макроса HRESULT_FROM_WIN32 . Ошибки могут возникать из самого VDS или из используемого базового поставщика VDS . Возможные возвращаемые значения включают следующие.

Возвращаемый код/значение Описание
S_OK
Сведения о свободном экстенте были успешно возвращены.
S_FALSE
На диске отсутствуют свободные экстенты.
VDS_E_ALIGN_NOT_SECTOR_SIZE_MULTIPLE
0x80042554L
Значение выравнивания, указанное в параметре ulAlign , не кратно размеру сектора диска.

Требования

   
Минимальная версия клиента Windows 7 [только классические приложения]
Минимальная версия сервера Windows Server 2008 R2 [только классические приложения]
Целевая платформа Windows
Header vds.h

См. также раздел

IVdsDisk3