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) |