WEB开发网
开发学院操作系统windows 2008 深度剖析WinPcap之(三)——所涉及的Windows驱动基... 阅读

深度剖析WinPcap之(三)——所涉及的Windows驱动基础知识(3)

 2009-09-11 00:00:00 来源:WEB开发网   
核心提示: VOIDRtlMoveMemory( IN VOID UNALIGNED *Destination, IN CONST VOID UNALIGNED *Source, IN SIZE_T Length);参数Destination表示要复制内存的目标地址,参数Source表示要复制内存的源地址,

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

上一页  1 2 3 

Tags:深度 剖析 WinPcap

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接