• 驱动编程:内存管理基本函数


    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

  • 相关阅读:
    BZOJ 2588
    BZOJ 3524
    BZOJ 3932
    Bzoj1013--Jsoi2008球形空间产生器
    Codevs1743--反转卡片
    Bzoj1208--Hnoi2004宠物收养所
    Bzoj1112--Poi2008砖块Klo
    后缀自动机学习笔记
    Bzoj1588--Hnoi2002营业额统计
    Bzoj1056--Haoi2008排名系统
  • 原文地址:https://www.cnblogs.com/alsofly/p/3734662.html
Copyright © 2020-2023  润新知