zoukankan      html  css  js  c++  java
  • 驱动编程:内存管理基本函数

    1)  内存间复制(非重叠)

    应用:比如将需要显示的内容,从缓冲区复制到内存先看等

    VOID RtlCopyMemory(

    IN VOID UNALLGNED* Destination,

    IN CONST VOID UNALLGNED *Source,

    IN SIZE_T Length);//表示要复制的内存长度,单位是字节

    注:RtlCopyBytes类似

    2)  内存间复制(可重叠)

               B           C            D 

    如果将AC段的内存,复制到BD段,就会出现内存重叠的现象了

    注:如果程序员能够确保内存没有重叠,请使用 RtlCopyMemory

        如果不能保证内存是否重叠,则使用 RtlMoveMemory

    VOID RtlMoveMemory(

        IN VOID UNALLGNED *Destination,

        IN CONST VOID UNALLGNED *Source,

        IN SIZE_T Length); //表示要复制的内存长度,单位是字节

    3)  内存的填充

    对某段内存区域用固定的字节填充

    VOID RtlFillMemory(

        IN VOID UNALLGNED *Destination,

        IN SIZE_T length,//长度

        IN UCHAR Fill);//需要填充的字节

    注:这个函数的参数后两个与memset相反

    对某段内存填0

    VOID RtlZeroMemory(

        IN VOID UNALLGNED *Destination,

        IN SIZE_T Length

    )

    注:RtlZeroBytes与之类似

    4)  内存比较

    ULONG RtlEqualMemory(

        CONST VOID *Sources1,

        CONST VOID *Sources2,

        SIZE_T Length//比较的长度,单位为字节

    )

    注:两段内存一致的情况下返回非0,不一致的情况下返回0

  • 相关阅读:
    C/C++定义全局变量/常量几种方法的区别
    可变参数宏__VA_ARGS__
    mysql 命令重命名表RENAME TABLE 句法
    贝尔实验室的历史
    SVN代码回滚
    linux下查看进程占用端口和端口占用进程命令
    php操作mongodb中的ISODate格式日期
    Vim多行缩进技巧
    关于XCode工程中PrefixHead.pch文件的使用
    Object C函数指针@selector
  • 原文地址:https://www.cnblogs.com/alsofly/p/3734662.html
Copyright © 2011-2022 走看看