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 表示叢集未設定 (免費) 。
請注意,位圖代表某個時間點,如果磁碟區有寫入活動,就會立即不正確。 因此,可能會嘗試將叢集移至已配置的叢集,但最近的點陣圖表示叢集未配置。 搭配FSCTL_MOVE_FILE控件程序代碼使用DeviceIoControl函式的程式必須備妥,才能達成此可能性。
此處使用的句柄必須是磁碟區句柄,且已以任何存取權開啟。 請注意,只有系統管理員可以開啟磁碟區句柄。
輸入緩衝區中的起始 LCN 可能會在計算點陣圖之前捨入。 四捨五入限制與文件系統相關。
如需此作業上重疊 I/O 的影響,請參閱 DeviceIoControl 主題的一節。
這項作業會將它傳回的頁面界限上的點陣圖對齊。
Windows Server 2003 和 Windows XP: 這項作業會對齊它在位元組界限上傳回的點陣圖。
在 Windows 8 和 Windows Server 2012 中,下列技術支援此程序代碼。
技術 | 支援 |
---|---|
伺服器消息塊 (SMB) 3.0 通訊協定 | No |
SMB 3.0 透明故障轉移 (TFO) | No |
具有向外延展檔案共用的SMB 3.0 (SO) | No |
叢集共用磁碟區文件系統 (CsvFS) | Yes |
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows XP [僅限傳統型應用程式] |
最低支援的伺服器 | Windows Server 2003 [僅限桌面應用程式] |
標頭 | winioctl.h (包含 Windows.h) |