FSCTL_DISMOUNT_VOLUME IOCTL (winioctl.h)

Smonta un volume indipendentemente dal fatto che il volume sia attualmente in uso. Per altre informazioni, vedere la sezione Osservazioni.

Per eseguire questa operazione, chiamare la funzione DeviceIoControl con i parametri seguenti.

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

Commenti

Il codice di controllo FSCTL_DISMOUNT_VOLUME tenterà di smontare un volume indipendentemente dal fatto che altri processi usino il volume, che possono avere risultati imprevedibili per tali processi se non mantengono un blocco sul volume. Per informazioni sul blocco di un volume, vedere FSCTL_LOCK_VOLUME.

L'handle hDevice passato a DeviceIoControl deve essere un handle a un volume aperto per l'accesso diretto. Per recuperare un handle del volume, chiamare CreateFile con il parametro lpFileName impostato su una stringa del modulo seguente:

\.\X:

dove X è una lettera di partizione del disco rigido, un'unità disco floppy o un'unità CD-ROM. L'applicazione deve specificare anche i flag di FILE_SHARE_READ e FILE_SHARE_WRITE nel parametro dwShareMode di CreateFile.

Se il volume specificato è un volume di sistema o contiene un file di pagina, l'operazione ha esito negativo.

Se il volume specificato è bloccato da un altro processo, l'operazione ha esito negativo. Per impedire a un altro processo di bloccare il volume, bloccarlo non appena lo si apre.

Un volume smontato ha le proprietà seguenti:

  • Non sono presenti file aperti.
  • Il sistema operativo rileva il volume.
Il sistema operativo tenta di montare un volume smontato non appena viene effettuato un tentativo di accedervi. Ad esempio, una chiamata a GetLogicalDrives attiva il sistema operativo per montare volumi smontati.

La smontatura di un volume è utile quando un volume deve scomparire per un po'. Ad esempio, un'applicazione che modifica un file system di volumi dal file system FAT al file system NTFS potrebbe usare la procedura seguente.

Per modificare un file system del volume

  1. Aprire un volume.
  2. Bloccare il volume.
  3. Formattare il volume.
  4. Smontare il volume.
  5. Sbloccare il volume.
  6. Chiudere l'handle del volume.
Un'operazione di smontaggio rimuove il volume dalla consapevolezza del file system FAT. Quando il sistema operativo monta il volume, viene visualizzato come volume del file system NTFS.

In Windows 8 e Windows Server 2012 questo codice è supportato dalle tecnologie seguenti.

Tecnologia Supportato
Protocollo SMB (Server Message Block) 3.0 No
Failover trasparente SMB 3.0 (TFO) No
SMB 3.0 con condivisioni file con scalabilità orizzontale (SO) No
File system del volume condiviso del cluster (CsvFS) Vedere il commento
 

In CsvFs il nodo in cui viene emesso il smontaggio visualizzerà una normale sequenza di smontaggio. In tutti gli altri nodi FS invaliderà tutti i file aperti.

Requisiti

Requisito Valore
Client minimo supportato Windows XP [solo app desktop]
Server minimo supportato Windows Server 2003 [solo app desktop]
Intestazione winioctl.h (include Windows.h)

Vedi anche

CreateFile

Deviceiocontrol

ExitThread

FSCTL_LOCK_VOLUME

GetLogicalDrives

Codici di controllo della gestione del volume