The UnlockFileEx function unlocks a previously locked byte range in an open file.
BOOL UnlockFileEx(
| HANDLE hFile, | // handle of file to unlock | 
| DWORD dwReserved, | // reserved, must be set to zero | 
| DWORD nNumberOfBytesToUnlockLow, | // low order 32-bits of length to unlock | 
| DWORD nNumberOfBytesToUnlockHigh, | // high order 32-bits of length to unlock | 
| LPOVERLAPPED lpOverlapped | // addr. of struct. with unlock region start offset | 
| ); | 
If the function succeeds, the return value is nonzero.
If the function fails, the return value is zero or NULL. To get extended error information, call GetLastError.
Unlocking a region of a file releases a previously acquired lock on a file. The region to unlock must correspond exactly to an existing locked region. Two adjacent regions of a file can not be locked separately and then unlocked using a single region that spans both locked regions.
If a process terminates with a portion of a file locked or closes a file that has outstanding locks, the behavior is not specified.