Поделиться через


FSCTL_GET_VOLUME_BITMAP IOCTL (winioctl.h)

Извлекает растровое изображение занятых и доступных кластеров на томе.

Для выполнения этой операции вызовите функцию DeviceIoControl со следующими параметрами.

BOOL DeviceIoControl(
  (HANDLE) hDevice,             // handle to volume
  FSCTL_GET_VOLUME_BITMAP,      // dwIoControlCode
  (LPVOID) lpInBuffer,          // input buffer
  (DWORD) nInBufferSize,        // size of input buffer
  (LPVOID) lpOutBuffer,         // output buffer
  (DWORD) nOutBufferSize,       // size of output buffer
  (LPDWORD) lpBytesReturned,    // number of bytes returned
  (LPOVERLAPPED) lpOverlapped   // OVERLAPPED structure
);

Комментарии

Код FSCTL_GET_VOLUME_BITMAP управления извлекает структуру данных, описывающую состояние распределения каждого кластера в файловой системе из запрошенной начальной LCN до последнего кластера на томе. В растровом рисунке используется один бит для представления каждого кластера:

  • Значение 1 указывает, что кластер выделен (используется).
  • Значение 0 указывает, что кластер не выделен (бесплатный).

Обратите внимание, что растровое изображение представляет точку во времени и может быть неверным, как только оно было прочитано, если в томе есть действие записи. Таким образом, можно попытаться переместить кластер в выделенный кластер, несмотря на недавнее растровое изображение, указывающее, что кластер не выделен. Программы, использующие функцию DeviceIoControl с кодом управления FSCTL_MOVE_FILE , должны быть подготовлены к этой возможности.

Используемый здесь дескриптор должен быть дескриптором тома и быть открыт с любым доступом. Обратите внимание, что только администраторы могут открывать дескрипторы томов.

Начальная LCN во входном буфере может быть округлена до вычисления растрового изображения. Ограничение округления зависит от файловой системы.

Сведения о последствиях перекрывающихся операций ввода-вывода для этой операции см. в разделе Примечания статьи DeviceIoControl .

Эта операция выравнивает возвращаемое растровое изображение на границе страницы.

Windows Server 2003 и Windows XP: Эта операция выравнивает возвращаемое растровое изображение по границе байтов.

В Windows 8 и Windows Server 2012 этот код поддерживается следующими технологиями.

Технология Поддерживается
Протокол SMB 3.0 Нет
SMB 3.0 Transparent Failover (TFO) Нет
SMB 3.0 с масштабируемыми общими папками (SO) Нет
Файловая система общего тома кластера (CSVFS) Да

Требования

Требование Значение
Минимальная версия клиента Windows XP [только классические приложения]
Минимальная версия сервера Windows Server 2003 [только классические приложения]
Верхняя часть winioctl.h (включая Windows.h)

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