1、接口设计方案接口设计方案一、设计方案由甲方调用监控模块 ,控制监控模块的启停、设置策略等,通过甲方调用监控模块 DLL的接口将监控策略告知监控模块, 由监控模块监控相关操作行为, 并根据策略配置调用甲方提供的文件内容检查模块, 对相关文件进行文件内容筛查, 来确定文件是否是涉密文件。 同时通过甲方程序调用乙方监控模块 DLL接口获取监控结果。甲方文件内容检查模块甲方监控模块监控程序DLL一、接口部分(监控模块 DLL,乙方提供)*Function:InitDescription: 初始化操作Input: 无Output: 无Return: true :成功, false:失败Other:*1、
2、bool Init();*Function:SetRuleDescription: 设置监控规则Input:char* pRule :监控规则, XML 格式,见 附 1Output: 无Return: true :成功, false:失败Other:*2、bool SetRule(char* pRule);*Function:StartDescription: 设置完规则,启动监控规则生效Input: 无Output: 无Return: true :成功, false:失败Other:*3、bool Start();*Function:WaitDataDescription: 实时等待获取监
3、控数据可以是一条可以是多条。返回监控结果见附2Input: 无Output: int &nCount 返回总条数, char*&pData 返回数据。Return: -1.异常 0.成功获取数据 1.结束 / 停止(其他地方调用Stop 接口停止)Other: 建议乙方内部实现用信号、内核事件等处理方式。*4、int WaitData(int &nCount, char*& pData);甲方调用伪代码:ThreadFunc() / 实时线程While(TRUE)char* pData = NULL;int nCount = 0;int nRet = WaitData(nCount,pData
4、); / 等待一条或多条数据时返回 ,没有数据就等待。switch(nRet)-1.异常 continue;0.成功获取数据 pData0 、 pData1 、1.结束 / 停止(其他地方调用 Stop 停止) Return;FreeData(pData);*Function:FreeDataDescription: 释放数据内存接口,对应Input:int nCount 要释放的元素数量,WaitData 函数char* 要释放的数据Output:无Return:无Other:*5、FreeData (int nCount ,char* pData);*Function:StopDescri
5、ption: 停止监控,监控规则失效Input: 无Output: 无Return: true :成功, false:失败Other:*6、bool Stop();*Function:UnInitDescription: 程序退出Input: 无Output: 无Return: true :成功, false:失败Other:*7、UnInit();二、文件检查模块/* 接口说明 */ 创建文件检查实例void (*PCreateFileCheckerObject)(IFileChecker *pObject);/ 释放文件检查实例void (*PReleaseFileCheckerObjec
6、t)(IFileChecker *pObject);多规则多种关键字组合,则创建多个实例- IFileChecker-/ 初始化void Init( const char *pName, const char *pKeyWords);pName:实例名称随意。但多个实例并行时不能重复 ;pKeyWords: 关键词组。格式: 机密 ; 秘密 ; 绝密 ;/ 结束调用void UnInit();/ 获取文件信息bool GetFileInfo(const char *pFilePath, TipsFileBlock *pTFB);pFilePath :文件路径pTFB:返回数据结构/ 释放文件信
7、息void FreeFileInfo(TipsFileBlock * pTFB);pTFB:需要释放的数据结构/ 停止当前的文件检查void StopCheck();*/-(.h)头文件如下-#pragmaoncestructTipsFileBlockchar * pKeyWords; / 关键字char * pSecretLevelchar * pFileBlock ; /;/ 密级 : 秘密、机密、绝密中的一个片段;classIFileCheckerpublic :virtualvoidInit( constchar* pKeyWords) = 0;virtualbool GetFileI
8、nfo ( constchar * pFilePath , TipsFileBlock * pTFB) = 0; virtualvoid FreeFileInfo ( TipsFileBlock * pTFB) = 0; virtualvoid UnInit () = 0;virtualvoid StopCheck () = 0;typedefvoid (* PCreateFileCheckerObject )( IFileChecker * pObject ); typedefvoid (* PReleaseFileCheckerObject )( IFileChecker * pObjec
9、t );/- 头文件 end-/ 示例/- 获取接口类 -HMODULEhDll = LoadLibrary ( _T( TipsFileChecker.dll );if ( NULL= hDll ) return ;PCreateFileCheckerObject pCreateFileChecker =( PCreateFileCheckerObject ) GetProcAddress ( hDll , CreateFileCheckerObject );PReleaseFileCheckerObject pReleaseFileChecker =( PReleaseFileChecke
10、rObject ) GetProcAddress ( hDll , ReleaseFileCheckerObject );if ( NULL= pCreateFileChecker | NULL= pReleaseFileChecker ) return ;IFileChecker * pFileChecker = NULL;pCreateFileChecker (& pFileChecker );/-初始化提供关键字-CStringA strName =FeiMi1; / 多个实例名称任意,但不同。例如:FeiMi2 、 FeiMi3 、 CStringA strKeyWords = 秘密
11、; 机密 ; 绝密 ; ;pFileChecker- Init( strName,strKeyWords );/-文件命中片段提取-CStringA strFilePath= C:123.docx;TipsFileBlockfb ;pFileChecker- GetFileInfo( strFilePath,&fb );/.pFileChecker- FreeFileInfo(& fb );/-结束释放-pFileChecker- StopCheck ();pFileChecker- UnInit ();pReleaseFileChecker (&pFileChecker );FreeLibrary ( hDll );三、附附 1:规则 XML:NetOpe
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1