FSCTL_ALLOW_EXTENDED_DASD_IO IOCTL (winioctl.h)
向文件系統驅動程式發出訊號,不要對分割區讀取或寫入呼叫執行任何 I/O 界限檢查。 相反地,界限檢查是由設備驅動器執行。
若要執行這項作業,請使用下列參數呼叫 DeviceIoControl 函式。
C++ |
---|
BOOL DeviceIoControl( (HANDLE) hDevice, // handle to device FSCTL_ALLOW_EXTENDED_DASD_IO, // dwIoControlCodeNULL, // lpInBuffer0, // nInBufferSizeNULL, // lpOutBuffer0, // nOutBufferSize(LPDWORD) lpBytesReturned, // number of bytes returned (LPOVERLAPPED) lpOverlapped // OVERLAPPED structure ); |
言論
使用 FSCTL_ALLOW_EXTENDED_DASD_IO 控件程式代碼的呼叫,只應該謹慎使用熟悉硬碟和文件系統基礎結構的程式設計人員。 對分割區的後續寫入作業使用不當或不正確檢查,可能會導致分割區上的數據損毀,或損毀整個分割區。
FSCTL_ALLOW_EXTENDED_DASD_IO 控件程式代碼是用來向文件系統驅動程式發出訊號,以在指定的句柄進行讀取或寫入呼叫時,不要執行任何 I/O 界限檢查。 FSCTL_ALLOW_EXTENDED_DASD_IO 允許存取隱藏扇區、分割區的第一個扇區(開機參數區塊)和分割區的第一個實用扇區之間可能存在的分割區部分。 FSCTL_ALLOW_EXTENDED_DASD_IO 也允許存取遺失的叢集,這可能存在於最後一個有用的叢集與分割區結尾之間。
此作業之後發出的 I/O 要求會直接傳遞至設備驅動器。 如果這些後續呼叫超出分割區界限的要求數據,驅動程式會導致它們失敗。
如需此作業上重疊 I/O 的影響,請參閱 deviceIoControl
若要擷取分割區的句柄,請使用
\\.\X:
其中 X 是驅動器號。
呼叫 createFile
若要判斷磁碟驅動器的數據分割結構,以及判斷系統是否能夠辨識磁碟分區,請視方式使用 IOCTL_DISK_GET_DRIVE_LAYOUT_EX 或 IOCTL_DISK_GET_DRIVE_LAYOUT 控件程序代碼。 如需單一數據分割的類似資訊,請視需要使用 IOCTL_DISK_GET_PARTITION_INFO_EX 或 IOCTL_DISK_GET_PARTITION_INFO 控件程序代碼。 若要判斷叢集的大小,請視情況使用 GetDiskFreeSpaceEx 或 GetDiskFreeSpace 函式。
在 Windows Server 2012 中,下列技術支援此功能。
科技 | 支援 |
---|---|
伺服器消息塊 (SMB) 3.0 通訊協定 | 不 |
SMB 3.0 透明故障轉移 (TFO) | 不 |
具有向外延展檔案共用的SMB 3.0(SO) | 不 |
叢集共用磁碟區檔案系統 (CsvFS) | 是的 |
復原檔案系統 (ReFS) | 是的 |
要求
要求 | 價值 |
---|---|
最低支援的用戶端 | Windows XP [僅限傳統型應用程式] |
支援的最低伺服器 | Windows Server 2003 [僅限傳統型應用程式] |
標頭 | winioctl.h (包括 Windows.h) |
另請參閱
IOCTL_DISK_GET_DRIVE_LAYOUT_EX