资源简介
基于minifilter实现的文件透明加解密,可支持word、excel等文件。
代码片段和文件信息
#include “cache.h“
#include “file.h“
void Cc_ClearFileCache(PFILE_object Fileobject BOOLEAN bIsFlushCache PLARGE_INTEGER FileOffset ULONG Length)
{
BOOLEAN PurgeRes ;
BOOLEAN ResourceAcquired = FALSE ;
BOOLEAN PagingIoResourceAcquired = FALSE ;
PFSRTL_COMMON_FCB_HEADER Fcb = NULL ;
LARGE_INTEGER Delay50Milliseconds = {(ULONG)(-50 * 1000 * 10) -1};
IO_STATUS_BLOCK IoStatus = {0} ;
if ((Fileobject == NULL))
{
return ;
}
Fcb = (PFSRTL_COMMON_FCB_HEADER)Fileobject->FsContext ;
if (Fcb == NULL)
{
return ;
}
Acquire:
FsRtlEnterFileSystem() ;
if (Fcb->Resource)
ResourceAcquired = ExAcquireResourceExclusiveLite(Fcb->Resource TRUE) ;
if (Fcb->PagingIoResource)
PagingIoResourceAcquired = ExAcquireResourceExclusive(Fcb->PagingIoResourceFALSE);
else
PagingIoResourceAcquired = TRUE ;
if (!PagingIoResourceAcquired)
{
if (Fcb->Resource) ExReleaseResource(Fcb->Resource);
FsRtlExitFileSystem();
KeDelayExecutionThread(KernelModeFALSE&Delay50Milliseconds);
goto Acquire;
}
if(Fileobject->SectionobjectPointer)
{
IoSetTopLevelIrp( (PIRP)FSRTL_FSP_TOP_LEVEL_IRP );
if (bIsFlushCache)
{
CcFlushCache( Fileobject->SectionobjectPointer FileOffset Length &IoStatus );
}
if(Fileobject->SectionobjectPointer->ImageSectionobject)
{
MmFlushImageSection(
Fileobject->SectionobjectPointer
MmFlushForWrite
) ;
}
if(Fileobject->SectionobjectPointer->DataSectionobject)
{
PurgeRes = CcPurgeCacheSection( Fileobject->SectionobjectPointer
NULL
0
FALSE );
}
IoSetTopLevelIrp(NULL);
}
if (Fcb->PagingIoResource)
ExReleaseResourceLite(Fcb->PagingIoResource );
if (Fcb->Resource)
ExReleaseResourceLite(Fcb->Resource );
FsRtlExitFileSystem() ;
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 13 2010-01-18 14:39 透明加解密源码\Build.txt
文件 2015 2010-01-18 14:07 透明加解密源码\engine\cache.c
文件 222 2010-01-18 10:36 透明加解密源码\engine\cache.h
文件 3498 2010-01-18 14:36 透明加解密源码\engine\common.h
文件 5759 2010-01-18 14:08 透明加解密源码\engine\ctx.c
文件 1186 2010-01-18 14:04 透明加解密源码\engine\ctx.h
文件 2481 2010-01-18 11:55 透明加解密源码\engine\engine.inf
文件 266 2009-08-19 09:48 透明加解密源码\engine\engine.rc
文件 14969 2010-01-18 14:09 透明加解密源码\engine\file.c
文件 3744 2010-01-18 10:38 透明加解密源码\engine\file.h
文件 121786 2008-01-19 13:16 透明加解密源码\engine\fltKernel.h
文件 1975 2010-01-18 14:35 透明加解密源码\engine\key.c
文件 528 2010-01-18 14:06 透明加解密源码\engine\key.h
文件 74208 2010-01-18 14:33 透明加解密源码\engine\main.c
文件 9158 2010-01-18 10:43 透明加解密源码\engine\main.h
文件 399 2009-10-11 09:40 透明加解密源码\engine\makefile
文件 4882 2010-01-18 14:10 透明加解密源码\engine\message.c
文件 861 2010-01-18 10:56 透明加解密源码\engine\message.h
文件 20007 2010-01-18 10:53 透明加解密源码\engine\process.c
文件 2227 2010-01-18 10:44 透明加解密源码\engine\process.h
文件 324 2010-01-18 10:31 透明加解密源码\engine\sources
文件 944 2010-01-18 11:18 透明加解密源码\include\error.h
文件 3700 2010-01-18 14:06 透明加解密源码\include\interface.h
文件 1835 2010-01-18 10:41 透明加解密源码\include\iocommon.h
文件 77 2010-09-21 09:46 透明加解密源码\S_CryptTest\App\bin\system.ini
文件 2511 2010-04-22 16:07 透明加解密源码\S_CryptTest\App\bin\S_Crypt.inf
文件 29184 2010-04-22 16:38 透明加解密源码\S_CryptTest\App\bin\S_Crypt.sys
文件 453120 2010-01-12 18:03 透明加解密源码\S_CryptTest\App\bin\S_DrvSendMsg.dll
文件 455168 2010-04-22 16:45 透明加解密源码\S_CryptTest\App\bin\TestCrypt.exe
文件 41596 2010-04-22 16:44 透明加解密源码\S_CryptTest\App\myGlobalFunc.pas
............此处省略47个文件信息
- 上一篇:大地主题正反算
- 下一篇:zigbee 2.4G PCB天线封装 有两个不同天线
评论
共有 条评论