- 15
- 0
- 约2.77千字
- 约 7页
- 2018-08-28 发布于福建
- 举报
基于WinApi硬盘监测系统设计与实现
基于WinApi硬盘监测系统设计与实现
摘要:针对基于WinApi的硬盘监测系统的设计,采取了window下的DeviceIoControl API函数为主要技术,利用C++中的MFC框架实现整个系统工程,给出了基于WinApi的硬盘监测系统设计关键架构与实现伪代码,搭建具体环境针对系统大体功能进行测试,运行正常。
关键词:DeviceIoControl,硬盘监测,MFC,Windows
1.引言
目前,家用计算机大多是Windows操作系统,计算机也采用经典的冯诺依曼结构,具有独立的存储器,随着计算机越来越普及,作为计算机存储器硬盘的性能越来越受到关注,能有效的检测一个正在运行的硬盘的性能好坏,对硬盘的损坏有一定的预警,及时提醒用户保存转移备份硬盘上的重要数据有非常重要的作用。
2.系统设计与基本原理
针对系统功能的需求,主流的设计实现方式有几种,基于WinApi函数,基于外部的驱动程序,基于外接扩展卡即,基于SATA TO PCIE核的嵌入式扩展卡,基于外部驱动程序,自由度比较高,设计者自定义通讯命令格式,不足之处需要控制驱动与Windows自身文件系统的冲突,基于SATA TO PCIE核的嵌入式扩展卡,系统的反盗版机制,安全系数会较好,能对软件进行硬件绑定,不足之处除了前者,成本相对也较高,设计者针对这些不足之处,采用基于WinApi的方式实现系统的功能需求。
2.1系统基本原理
硬盘的最小处理单元是扇区,针对硬盘出现的慢扇区和坏扇区,系统能监测到,并且能及时的预警提醒用户。WinApi是windows系统对外提供的应用程序编程接口,设计者通过调用WinApi函数实现特定的windows系统功能,设计者根据系统的功能需要,主要用WinApi中的DeviceIoControl函数与挂载在计算机上的系统硬盘进行通讯,通过发送给硬盘的检测命令的相隔时间,得到一个监测扇区的超时值是否在正常范围,利用这个时间值,反应在系统的用户交互界面中。
2.2系统功能设计
设计者给出系统的UML功能用例图显示,用户的交互达到预期,客户端是一个全后台工作的系统,对外提供InI配置文件接口,同时能完成自启动过程,完成初始化工作,自动获取系统硬盘的基本信息,同时做好空闲扫描的准备工作,功能的详细用例。
3.硬盘监测系统设计实现
针对硬盘级别监测领域国内外都处于启蒙阶段,设计者提出基于WinApi的硬盘监控系统的完整解决方案,对硬盘数据保护领域有着至关重要的作用,系统有别于国内市场的鲁大师等基于系统级别的检测,该系统是基于硬盘扇区级别的检测,其预警准确性较高,系统的实现采用C++中的MFC技术。
3.1系统扇区监测核心模块设计
由于整个系统单元数较多,代码量大,设计者在此仅给出初始化,硬盘扇区监测模块的具体设计思路和伪代码。
程序初始化
设计实现,初始化需要读取系统的Ini配置文件,初始化完成,系统的自启动注册,防火墙设置,用户名,密码等需要初始化完成的步骤。设计者运用到了很多C++编程技巧以及C++的编程技术实现该模块,由于篇幅有限,在此仅给出了部分伪代码如下:
//初始化客户端用户信息
::GetPrivateProfileString(_T(“settings”),_T(“SN”),NULL,SN.GetBufferSetLength(MAX_PATH),MAX_PATH,strText);
//注册自启动
RegisterSelfStart();
keyStr=_T(“Software\\Microsoft\\Windows\\CurrentVersion\\Run”);
::RegSetValueEx(hRegKey,…)
硬盘扇区监测模块
设计者采用的主要技术是WinApi函数DeviceIoControl实现,利用该函数发送监测扇区标准ATA命令,统计命令处理时间,得到扇区的超时时间,系统根据超时时间判断硬盘的本次监测结果,由于篇幅有限,在此仅给出了部分伪代码如下:
//填充命令字中的LBA地址,和扫描区块大小
btIn[30]=BYTE(ulLBA24);……btIn[36]=btBlockSize;
//==开始计时==//
DWORD dwTimeBegin=GetTickCount();
if(!::DeviceIoControl(hDevice,0x4d004,btIn,0x4c,NULL,0,dwSize,NULL))
DWORD dwTimeEnd=GetTickCount();
dwTime=dwTimeEnd-dwTimeBegin
您可能关注的文档
- 基于Web技术在教务管理系统研究.doc
- 基于WEB技术地铁安全保护区隧道设施内外关联技术研究.doc
- 基于Web技术在线考试系统现状与发展.doc
- 基于Web技术实验设备管理模式探索.doc
- 基于Web技术文本自动摘要方法.doc
- 基于web技术浅析3D网络模型构建策略.doc
- 基于WEB技术湖漫水库综合自动化系统集成方案.doc
- 基于Web技术温度物联网终端研究.doc
- 基于WEB技术电子政务系统设计.doc
- 基于web技术社区网上数字化学习平台设计.doc
- 伟明环保-市场前景及投资研究报告-境内业务稳健运行,印尼市场贡献边际增量.pdf
- 桂东县法院系统招聘考试真题2025.pdf
- 贵州省黔南布依族2026年中考三模物理试题及答案.pdf
- 贵州省黔南州2026年中考语文二模试卷附答案.pdf
- 贵州省铜仁市2026年中考语文二模试卷附答案.pdf
- 2026上半年安徽事业单位联考合肥市庐江县招聘36人备考题库及一套完整答案详解.docx
- 贵州省毕节市2026年中考语文一模试卷附答案.pdf
- 贵州省贵阳市南明区2026年中考语文一模试卷附答案.pdf
- 2026上半年安徽事业单位联考合肥市庐江县招聘36人备考题库及一套参考答案详解.docx
- 贵州省贵阳市白云区2026年中考二模物理试题附答案.pdf
原创力文档

文档评论(0)