Compartilhar via


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

CreateFile

Funções de gerenciamento de arquivos

LockFile

UnlockFileEx