FSCTL_DISMOUNT_VOLUME IOCTL (winioctl.h)
不論磁碟區目前是否正在使用中,卸除磁碟區。 如需詳細資訊,請參閱一節。
若要執行這項作業,請使用下列參數呼叫 DeviceIoControl 函式。
C++ |
---|
BOOL DeviceIoControl( (HANDLE) hDevice, // handle to a volume (DWORD) FSCTL_DISMOUNT_VOLUME, // dwIoControlCodeNULL, // lpInBuffer0, // nInBufferSizeNULL, // lpOutBuffer0, // nOutBufferSize(LPDWORD) lpBytesReturned, // number of bytes returned (LPOVERLAPPED) lpOverlapped // OVERLAPPED structure ); |
言論
FSCTL_DISMOUNT_VOLUME 控制程式代碼會嘗試卸除磁碟區,而不論任何其他進程是否使用磁碟區,如果這些進程沒有鎖定磁碟區,這些進程可能會產生無法預期的結果。 如需鎖定磁碟區的相關信息,請參閱 FSCTL_LOCK_VOLUME。
傳遞 至 deviceIoControl 的 hDevice 句柄必須是磁碟區的句柄,才能直接存取。 若要擷取磁碟區句柄,請使用 lpFileName 參數,呼叫 createFile,並設定為下列格式的字元串:
\\.\X:
其中 X 是硬碟磁碟分區字母、軟碟磁碟驅動器或 CD-ROM 磁碟驅動器。 應用程式也必須在 createFile的
如果指定的磁碟區是系統磁碟區或包含頁面檔案,則作業會失敗。
如果指定的磁碟區被另一個進程鎖定,則作業會失敗。 若要防止另一個進程鎖定磁碟區,請在開啟磁碟區時立即加以鎖定。
卸除的磁碟區具有下列屬性:
- 沒有開啟的檔案。
- 操作系統會偵測磁碟區。
當磁碟區需要消失一段時間時,卸除磁碟區很有用。 例如,將磁碟區檔案系統從 FAT 檔案系統變更為 NTFS 檔案系統的應用程式可能會使用下列程式。
變更磁碟區文件系統
- 開啟磁碟區。
- 鎖定磁碟區。
- 格式化磁碟區。
- 卸除磁碟區。
- 解除鎖定磁碟區。
- 關閉磁碟區控點。
在 Windows 8 和 Windows Server 2012 中,下列技術支援此程序代碼。
科技 | 支援 |
---|---|
伺服器消息塊 (SMB) 3.0 通訊協定 | 不 |
SMB 3.0 透明故障轉移 (TFO) | 不 |
具有向外延展檔案共用的SMB 3.0(SO) | 不 |
叢集共用磁碟區檔案系統 (CsvFS) | 請參閱批注 |
在 CsvFs 上,發出卸除的節點會看到一般卸除順序。 在所有其他節點上,FS 會使所有已開啟的檔案失效。
要求
要求 | 價值 |
---|---|
最低支援的用戶端 | Windows XP [僅限傳統型應用程式] |
支援的最低伺服器 | Windows Server 2003 [僅限傳統型應用程式] |
標頭 | winioctl.h (包括 Windows.h) |