给文件加锁
函数LockFileEx或者LockFile():
LockFileEx比函数LockFile多了两个功能,一、它在锁定文件的某个区域时,可以设定属性以使其它进程可以读该锁定区域,二、可以告诉LockFileEx直接锁定文件成功后返回。第二个功能比起LockFile要好多了,因为当调用LockFile时,如果想锁定的文件区域已经被另一个线程锁定了,那么LockFile会立即返回,但是你可以告诉LockFileEx一直等到获得文件为止才返回。下面列出函数LockFileEx的定义,
BOOL LockFileEx(HANDLE hFile,DWORD dwFlags,
DWORD dwReserved,DWORD nNumberOfBytesToLockLow,
DWORD nNumberOfBytesToLockHigh,
LPOVERLAPPED lpOverLapped);
LockFileEx使用OVERLAPPED结构中的成员Offset和OffsetHigh。
下面列出结构OVERLAPPED的定义:
typedef struct _OVERLAPPED{
DWORD Internal;
DWORD InternalHigh;
DWORD Offset;
DWORD OffsetHigh;
HANDLE hEvent; //事件内核对象
}OVERLAPPED,*LPOVERLAPPED;