深度剖析WinPcap之(三)——所涉及的Windows驱动基础知识(3)
2009-09-11 00:00:00 来源:WEB开发网VOID
RtlMoveMemory(
IN VOID UNALIGNED *Destination,
IN CONST VOID UNALIGNED *Source,
IN SIZE_T Length
);
参数Destination表示要复制内存的目标地址。参数Source表示要复制内存的源地址。参数Length表示要复制的内存的长度,单位是字节。
1.1.7.3 填充内存
驱动程序开发中,迹经常用到对某段内存区域用固定字节填充。DDK为程序员提供了RtIFillMemory函数。
VOID
RtlFillMemory(
IN VOID UNALIGNED *Destination,
IN SIZE_T Length,
IN UCHAR Fill
);
参数Destination为目标内存的地址。参数Length为待填的长度。参数Fill为需要填充的字节。
在驱动程序开发中,还经常要对某段内存填零,DDK提供了RtlZeroMemory函数。
VOID
RtlZeroMemory(
IN VOID UNALIGNED *Destination,
IN SIZE_T Length
);
参数Destination为目标内存的地址。参数Length为待填的长度。
1.1.7.4 内存比较
驱动程序开发中,还会用到比较两块内存是否一致,可采用RtICompareMemory函数。
SIZE_T
RtlCompareMemory(
IN CONST VOID *Source1,
IN CONST VOID *Source2,
IN SIZE_T Length
);
参数Sourcel为比较的第一个内存地址。参数Sou:rce2为比较的第二个内存地址。参数Length为比较的长度,单位为字节。
函数返回相等的字节数。
函数RtIEquaIMemory通过判断返回值和Length是否相等,来判断两块内存是否完全一致。同时DDK还提供了RtlEqualMemory函数,直接判断两块内存是否一致。
LOGICAL
RtlEqualMemory(
CONST VOID *Source1,
CONST VOID *Source2,
SIZE_T Length
);
函数RtlEquaIMemory在两块内存一致的情况下返回非零值,在不一致的情况下返回零。
出处:http://eslxf.blog.51cto.com/918801/196914
- ››深度解释攻击linux服务器的四种级别
- ››剖析java.util.concurrent锁
- ››剖析Android智能手机系统的更多功能
- ››深度分析地方社区网站的内容定位
- ››剖析Windows Azure Platform框架与组成
- ››剖析使用 ObjectOutputStream 可能引起的内存泄漏...
- ››剖析EWebEditor编辑器漏洞攻击案例
- ››剖析开源云:构建 Infrastructure as a Service 块...
- ››深度剖析 Android 和 iPhone OS
- ››深度分析:HTML5能否成为Flash终结者
- ››深度挖掘 更多Windows 7快捷模式
- ››深度挖掘 Windows 7快捷模式
更多精彩
赞助商链接