FSCTL_DISMOUNT_VOLUME IOCTL (winioctl.h)
Desmonta um volume, independentemente dele estar ou não em uso no momento. Para obter mais informações, consulte a seção Comentários.
Para executar essa operação, chame a função DeviceIoControl com os parâmetros a seguir.
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 ); |
Comentários
O código de controle FSCTL_DISMOUNT_VOLUME tentará desmontar um volume, independentemente de outros processos estarem usando ou não o volume, o que poderá ter resultados imprevisíveis para esses processos se eles não mantiverem um bloqueio no volume. Para obter informações sobre como bloquear um volume, consulte FSCTL_LOCK_VOLUME.
O identificador hDevice passado para DeviceIoControl deve ser um identificador para um volume, aberto para acesso direto. Para recuperar um identificador de volume, chame CreateFile com o parâmetro lpFileName definido como uma cadeia de caracteres do seguinte formulário:
\.\X:
em que X é uma letra de partição de disco rígido, uma unidade de disco disquete ou uma unidade CD-ROM. O aplicativo também deve especificar os sinalizadores FILE_SHARE_READ e FILE_SHARE_WRITE no parâmetro dwShareMode de CreateFile.
Se o volume especificado for um volume do sistema ou contiver um arquivo de página, a operação falhará.
Se o volume especificado for bloqueado por outro processo, a operação falhará. Para impedir que outro processo bloqueie o volume, bloqueie-o assim que você abri-lo.
Um volume desmontado tem as seguintes propriedades:
- Não há arquivos abertos.
- O sistema operacional detecta o volume.
Desmontar um volume é útil quando um volume precisa desaparecer por um tempo. Por exemplo, um aplicativo que altera um sistema de arquivos de volume do sistema de arquivos FAT para o sistema de arquivos NTFS pode usar o procedimento a seguir.
Para alterar um sistema de arquivos de volume
- Abra um volume.
- Bloqueie o volume.
- Formate o volume.
- Desmonte o volume.
- Desbloqueie o volume.
- Feche o identificador de volume.
Em Windows 8 e Windows Server 2012, esse código é compatível com as tecnologias a seguir.
Tecnologia | Com suporte |
---|---|
Protocolo SMB (SMB) 3.0 | No |
TFO (Failover transparente) do SMB 3.0 | No |
SMB 3.0 com compartilhamentos de arquivos de expansão (SO) | No |
Sistema de arquivos de Volume Compartilhado Clusterizado (CsvFS) | Confira o comentário |
Em CsvFs, o nó em que a desmontagem é emitida verá uma sequência de desmontagem normal. Em todos os outros nós, o FS invalidará todos os arquivos abertos.
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Windows XP [somente aplicativos da área de trabalho] |
Servidor mínimo com suporte | Windows Server 2003 [somente aplicativos da área de trabalho] |
Cabeçalho | winioctl.h (inclua Windows.h) |
Confira também
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de