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 の dwShareMode パラメーターにFILE_SHARE_READフラグとFILE_SHARE_WRITE フラグも指定する必要があります。
指定されたボリュームがシステム ボリュームであるか、ページ ファイルが含まれている場合、操作は失敗します。
指定されたボリュームが別のプロセスによってロックされている場合、操作は失敗します。 別のプロセスでボリュームがロックされないようにするには、開いたらすぐにロックします。
マウント解除されたボリュームには、次のプロパティがあります。
- 開いているファイルはありません。
- オペレーティング システムによってボリュームが検出されます。
ボリュームのマウントを解除すると、ボリュームがしばらくの間消える必要がある場合に便利です。 たとえば、ボリューム ファイル システムを FAT ファイル システムから NTFS ファイル システムに変更するアプリケーションでは、次の手順を使用できます。
ボリューム ファイル システムを変更するには
- ボリュームを開きます。
- ボリュームをロックします。
- ボリュームをフォーマットする。
- ボリュームのマウントを解除します。
- ボリュームのロックを解除します。
- ボリューム ハンドルを閉じます。
Windows 8とWindows Server 2012では、このコードは次のテクノロジでサポートされています。
テクノロジ | サポートされています |
---|---|
サーバー メッセージ ブロック (SMB) 3.0 プロトコル | いいえ |
SMB 3.0 Transparent Failover (TFO) | いいえ |
スケールアウト ファイル共有 (SO) を使う SMB 3.0 | いいえ |
クラスターの共有ボリューム ファイル システム (CsvFS) | コメントを表示する |
CsvFs では、マウント解除が発行されたノードには、通常のマウント解除シーケンスが表示されます。 他のすべてのノードでは、FS は開いているすべてのファイルを無効にします。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows XP (デスクトップ アプリのみ) |
サポートされている最小のサーバー | Windows Server 2003 (デスクトップ アプリのみ) |
Header | winioctl.h (Windows.h を含む) |
こちらもご覧ください
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示