minifilter微过滤驱动怎么过滤内存映射的文件比如notepad读txt文件
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了minifilter微过滤驱动怎么过滤内存映射的文件比如notepad读txt文件相关的知识,希望对你有一定的参考价值。
参考技术A KeEnterCriticalRegion();if(ExAcquireResourceExclusiveLite( ((PFSRTL_COMMON_FCB_HEADER)FileObject->FsContext)->Resource, FALSE))
if(ExAcquireResourceExclusiveLite( ((PFSRTL_COMMON_FCB_HEADER)FileObject->FsContext)->PagingIoResource, FALSE))
if(FileObject->SectionObjectPointer)
iosetTopLevelIrp( (PIRP)FSRTL_FSP_TOP_LEVEL_IRP );
CcFlushCache( FileObject->SectionObjectPointer, NULL, 0, NULL );
if(FileObject->SectionObjectPointer->ImageSectionObject)
MmFlushImageSection(
FileObject->SectionObjectPointer,
MmFlushForWrite//MmFlushForDelete//
) ;
if(FileObject->SectionObjectPointer->DataSectionObject)
CcPurgeCacheSection( FileObject->SectionObjectPointer,
NULL,
0,
FALSE ); //为TRUE,会强迫所有的FileObject重新初始化Cache
if(FileObject->PrivateCacheMap)
CcUninitializeCacheMap(FileObject, NULL, NULL);;
if(FileObject->SectionObjectPointer->DataSectionObject)
//Interval.QuadPart = DELAY_ONE_MILLISECOND * 500;//500ms
//KeDelayExecutionThread(KernelMode, FALSE, &Interval);
MmForceSectionClosed( FileObject->SectionObjectPointer,
TRUE//改为TRUE,彻底刷新缓存!!!
);
IoSetTopLevelIrp(NULL);
ExReleaseResourceLite( ((PFSRTL_COMMON_FCB_HEADER)FileObject->FsContext)->PagingIoResource );
ExReleaseResourceLite( ((PFSRTL_COMMON_FCB_HEADER)FileObject->FsContext)->Resource );
KeLeaveCriticalRegion();
但是这样又容易毁坏数据。抛砖引玉,还请高手出手
windows驱动
要求:
1.2年以上Windows相关开发经验,精通文件系统过滤驱动或注册表过滤驱动的知识;
2.熟悉WDM驱动框架,能够熟练使用WDK提供的文件系统、注册表系统相关的函数;
3.精通windows内核基本原理,理解文件系统、缓存管理、注册表系统;
4.熟悉MiniFilter框架的知识,能够熟练使用WinDbg、ollydbg或ida等调试工具;
5.使用MiniFilter框架开发文件过滤驱动或从事过杀毒软件开发者优先;
6.从事windows驱动层的透明加解密和文件沙箱经验或熟悉工作原理者优先。
学习知识
以上是关于minifilter微过滤驱动怎么过滤内存映射的文件比如notepad读txt文件的主要内容,如果未能解决你的问题,请参考以下文章
文件系统过滤器驱动程序和文件系统微过滤器驱动程序有啥区别? (视窗)