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

  • 相关阅读:
    JavaScript实现文本框和密码框placeholder效果(兼容ie8)
    11.24 模拟赛题解
    一句话题解集——口胡万岁
    uTools-插件化定制属于自己的工具集[免费]
    tree
    braintree 支付
    Shopify 接口调用
    TcPlayer腾讯播放器
    微信支付(WeixinJSBridge.invoke、wx.chooseWXPay)
    图片上传(二进制文件流)
  • 原文地址:https://www.cnblogs.com/alsofly/p/3734662.html
Copyright © 2011-2022 走看看