谁能帮我说明下ReadDirectoryChangesW(__inHANDLEhDirectory,__out_bcount_part(nBufferLength,*lp...
谁能帮我说明下ReadDirectoryChangesW(
__in HANDLE hDirectory,
__out_bcount_part(nBufferLength, *lpBytesReturned) LPVOID lpBuffer,
__in DWORD nBufferLength,
__in BOOL bWatchSubtree,
__in DWORD dwNotifyFilter,
__out_opt LPDWORD lpBytesReturned,
__inout_opt LPOVERLAPPED lpOverlapped,
__in_opt LPOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine
)这个函数的参数是什么意思,这些参数能取什么值呢?在百度上搜这个函数一直没找到对这个函数参数的完整说明啊,请高手指点下 啊!答得完整的给10分,谢谢!
1
其中hDireetory为使用CreateFile函数为指定路径生成文
件的句柄;lpBuffer为用于存储返回的文件访问信息的缓冲区
的指针;nBufferLength为以字节为单位的缓冲区的大小;
bWatchSubtree用于指定是否监控子文件夹,如果传人TRUE
则表示监控子文件夹;dwNotifyFiher用于指定监控的动作,例
如FILE NOTIFY_CHANGE_FILE_NAME表示监控文件重命名
这一动作,可以使用“I’,来组合多个这样的值,这样就能满
足几乎所有的监控需求;lpBytesReturned用于在同步调用中指
定传入lpBuffer的字节数,而在异步状态下传人NULL值即
可;lpOvedapped为指向OVERLAPPED结构的指针,仅在异
步调用中使用;最后一个参数是指向OVERLAPPED_COM—
PLETION_ROUTINE的指针,简单地传人NULL即可。
在线程函数中需要做的就是在一个while循环中循环调用
ReadDirectoryChanges函数,然后通过lpBuffer返回的文件访
问信息判断文件具体被如何改动了,然后通过不同安全级别
下的策略来实施文件保护操作。在此系统中主要拦截了4种
件、修改文件和重命名文件,分别通过Action的4种取值
nI卫一ACTION ADDED、FILE-ACrn0N—REMOVED、F1LE_AC一
"l ION_MODI兀ED、nLE—ACllON RENAMED_OLD—NAME来区
别。