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 | Sì |
Failover trasparente SMB 3.0 (TFO) | Sì |
SMB 3.0 con condivisioni file di scalabilità orizzontale (SO) | Sì |
File system del volume condiviso cluster (CsvFS) | Sì |
Resilient File System (ReFS) | Sì |
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 |