Função UnlockFile (fileapi.h)
Desbloqueia uma região em um arquivo aberto. Desbloquear uma região permite que outros processos acessem a região.
Para uma maneira alternativa de especificar a região, use a função UnlockFileEx .
Sintaxe
BOOL UnlockFile(
[in] HANDLE hFile,
[in] DWORD dwFileOffsetLow,
[in] DWORD dwFileOffsetHigh,
[in] DWORD nNumberOfBytesToUnlockLow,
[in] DWORD nNumberOfBytesToUnlockHigh
);
Parâmetros
[in] hFile
Um identificador para o arquivo que contém uma região bloqueada com LockFile. O identificador de arquivo deve ter sido criado com o direito de acesso GENERIC_READ ou GENERIC_WRITE . Para obter mais informações, consulte Segurança de arquivo e direitos de acesso.
[in] dwFileOffsetLow
A palavra de baixa ordem do deslocamento de bytes inicial no arquivo em que a região bloqueada começa.
[in] dwFileOffsetHigh
A palavra de alta ordem do deslocamento de bytes inicial no arquivo em que a região bloqueada começa.
[in] nNumberOfBytesToUnlockLow
A palavra de baixa ordem do comprimento do intervalo de bytes a ser desbloqueado.
[in] nNumberOfBytesToUnlockHigh
A palavra de alta ordem do comprimento do intervalo de bytes a ser desbloqueado.
Valor retornado
Se a função for bem-sucedida, o valor retornado será diferente de zero.
Se a função falhar, o valor retornado será zero. Para obter informações de erro estendidas, chame GetLastError.
Comentários
Essa função sempre opera de forma síncrona, mas pode não enfileirar uma entrada de conclusão quando uma porta de conclusão está associada ao identificador de arquivo.
Desbloquear uma região de um arquivo libera um bloqueio adquirido anteriormente no arquivo. A região a ser desbloqueada deve corresponder exatamente a uma região bloqueada existente. Duas regiões adjacentes de um arquivo não podem ser bloqueadas separadamente e desbloqueadas usando uma única região que abrange ambas as regiões bloqueadas.
Se um processo terminar com uma parte de um arquivo bloqueado ou fechar um arquivo com bloqueios pendentes, os bloqueios serão desbloqueados pelo sistema operacional. No entanto, o tempo necessário para o sistema operacional desbloquear esses bloqueios depende dos recursos do sistema disponíveis. Portanto, é recomendável que o processo desbloqueie explicitamente todos os arquivos que ele bloqueou quando terminar. Se isso não for feito, o acesso a esses arquivos poderá ser negado se o sistema operacional ainda não os tiver desbloqueado.
No Windows 8 e Windows Server 2012, essa função é compatível com as tecnologias a seguir.
Tecnologia | Com suporte |
---|---|
Protocolo SMB (SMB) 3.0 | Sim |
TFO (Failover transparente) do SMB 3.0 | Sim |
SMB 3.0 com compartilhamentos de arquivos de expansão (SO) | Sim |
Sistema de arquivos de Volume Compartilhado Clusterizado (CsvFS) | Sim |
ReFS (Sistema de Arquivos Resiliente) | Sim |
Requisitos
Cliente mínimo com suporte | Windows XP [aplicativos da área de trabalho | aplicativos UWP] |
Servidor mínimo com suporte | Windows Server 2003 [aplicativos da área de trabalho | Aplicativos UWP] |
Plataforma de Destino | Windows |
Cabeçalho | fileapi.h (inclua Windows.h) |
Biblioteca | Kernel32.lib |
DLL | Kernel32.dll |
Confira também
Como bloquear e desbloquear intervalos de bytes em arquivos