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

  • 相关阅读:
    setInterval的停止与启动
    postgresql常用
    STM32学习笔记(四) RCC外设的学习和理解
    STM32学习笔记(九) 外部中断,待机模式和事件唤醒
    STM32的优先级的理解及其使用
    基于STM32的红外遥控重点解析
    红外协议之NEC协议
    常用运放选型一览表
    运放参数解释及常用运放选型
    算放大器分析----虚短和虚断(转载)
  • 原文地址:https://www.cnblogs.com/alsofly/p/3734662.html
Copyright © 2011-2022 走看看