Condividi tramite


Funzione UnlockFile (fileapi.h)

Sblocca un'area in un file aperto. Lo sblocco di un'area consente ad altri processi di accedere all'area.

Per un modo alternativo per specificare l'area, usare la funzione UnlockFileEx .

Sintassi

BOOL UnlockFile(
  [in] HANDLE hFile,
  [in] DWORD  dwFileOffsetLow,
  [in] DWORD  dwFileOffsetHigh,
  [in] DWORD  nNumberOfBytesToUnlockLow,
  [in] DWORD  nNumberOfBytesToUnlockHigh
);

Parametri

[in] hFile

Handle per il file che contiene un'area bloccata con LockFile. L'handle di file deve essere stato creato con il diritto di accesso GENERIC_READ o GENERIC_WRITE . Per altre informazioni, vedere Protezione dei file e diritti di accesso.

[in] dwFileOffsetLow

Parola in ordine basso dell'offset dei byte iniziale nel file in cui inizia l'area bloccata.

[in] dwFileOffsetHigh

Parola di ordine elevato dell'offset dei byte iniziale nel file in cui inizia l'area bloccata.

[in] nNumberOfBytesToUnlockLow

Parola di ordine basso della lunghezza dell'intervallo di byte da sbloccare.

[in] nNumberOfBytesToUnlockHigh

Parola di ordine elevato della lunghezza dell'intervallo di byte da sbloccare.

Valore restituito

Se la funzione ha esito positivo, il valore restituito è diverso da zero.

Se la funzione ha esito negativo, il valore restituito è zero. Per informazioni dettagliate sull'errore, chiamare GetLastError.

Commenti

Questa funzione funziona sempre in modo sincrono, ma potrebbe non accodare una voce di completamento quando una porta di completamento è associata all'handle di file.

Sbloccare un'area di un file rilascia un blocco acquisito in precedenza nel file. L'area da sbloccare deve corrispondere esattamente a un'area bloccata esistente. Due aree adiacenti di un file non possono essere bloccate separatamente e quindi sbloccate usando una singola area che si estende su entrambe le aree bloccate.

Se un processo termina con una parte di un file bloccato o chiude un file con blocchi in sospeso, i blocchi vengono sbloccati dal sistema operativo. Tuttavia, il tempo necessario per sbloccare questi blocchi dal sistema operativo dipende dalle risorse di sistema disponibili. Pertanto, è consigliabile che il processo sblocchi in modo esplicito tutti i file che ha bloccato quando termina. Se questa operazione non viene eseguita, l'accesso a questi file potrebbe essere negato se il sistema operativo non li ha ancora sbloccati.

In Windows 8 e Windows Server 2012 questa funzione è supportata dalle tecnologie seguenti.

Tecnologia Supportato
Protocollo SMB (Server Message Block) 3.0
Failover trasparente SMB 3.0 (TFO)
SMB 3.0 con condivisioni file di scalabilità orizzontale (SO)
File system del volume condiviso cluster (CsvFS)
Resilient File System (ReFS)

Requisiti

   
Client minimo supportato Windows XP [app desktop | App UWP]
Server minimo supportato Windows Server 2003 [app desktop | App UWP]
Piattaforma di destinazione Windows
Intestazione fileapi.h (include Windows.h)
Libreria Kernel32.lib
DLL Kernel32.dll

Vedere anche

Blocco e sblocco degli intervalli di byte nei file

CreateFile

Funzioni di gestione file

LockFile

UnlockFileEx