共用方式為


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一节。

若要擷取分割區的句柄,請使用 lpFileName 參數,呼叫 createFile 設為下列格式的字串:

\\.\X

其中 X 是驅動器號。

呼叫 createFile 的應用程式 也必須在 createFiledwShareMode 參數中指定 FILE_SHARE_READFILE_SHARE_WRITE 旗標。 如需詳細資訊,請參閱 CreateFile中的磁碟裝置一節。

若要判斷磁碟驅動器的數據分割結構,以及判斷系統是否能夠辨識磁碟分區,請視方式使用 IOCTL_DISK_GET_DRIVE_LAYOUT_EXIOCTL_DISK_GET_DRIVE_LAYOUT 控件程序代碼。 如需單一數據分割的類似資訊,請視需要使用 IOCTL_DISK_GET_PARTITION_INFO_EXIOCTL_DISK_GET_PARTITION_INFO 控件程序代碼。 若要判斷叢集的大小,請視情況使用 GetDiskFreeSpaceExGetDiskFreeSpace 函式。

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

另請參閱

CreateFile

DeviceIoControl

檔案管理控制代碼

GetDiskFreeSpace

GetDiskFreeSpaceEx

IOCTL_DISK_GET_DRIVE_LAYOUT

IOCTL_DISK_GET_DRIVE_LAYOUT_EX

IOCTL_DISK_GET_PARTITION_INFO

IOCTL_DISK_GET_PARTITION_INFO_EX

重疊