RtlMoveMemory

從指定記憶體中複製記憶體至另一記憶體里.簡稱:複製記憶體.

RtlCopyMemory非重疊複製,而RtlMoveMemory是重疊複製。

基本介紹

  • 中文名:RtlMoveMemory
  • 功能:複製記憶體
  • 返回值:空
  • 要求:包含在Ntoskrnl.lib
功能,基本概念,語法,參數,返回值,備註,要求,

功能

根據C99定義,memcpy沒有考慮重疊的部分,因此他不能保證重疊部分是否被複製。
為了保證重疊部分也被正確複製,C99規定memmove函式完成這個任務。
move版對兩個記憶體是否重疊進行了判斷,這種判斷卻犧牲了速度。
如果程式設計師能確保複製的記憶體沒有重疊,請選擇使用memcpy。
如果不能保證,請選擇使用memmove函式。
為了保證可移植性,DDK用宏對這兩個函式進行了封裝,即:RtlCopyMemory和RtlMoveMemory。

基本概念

語法

VOID RtlMoveMemory(
VOID UNALIGNED *Destination,
const VOID UNALIGNED *Source,
SIZE_T Length
);

參數

Destination :指向移動目的地址的指針
Source :指向要複製的記憶體地址的指針。
Length :指定要複製的位元組數。

返回值

備註

傳遞到RtlMoveMemory的 (Source + Length)的地址範圍可以和Destination 發生重疊。
如果這兩個記憶體塊駐留,則調用RtlMoveMemory者可以運行在任何IRQL。否則,調用者必須運行在IRQL<= APC_LEVEL。

要求

系統
Windows 2000或更高版本
頭檔案
Wdm.h, Ntddk.h 或 Ntifs.h
靜態庫
包含在Ntoskrnl.lib。
任何級別(見備註部分)

相關詞條

熱門詞條

聯絡我們