DDK提供以下的記憶體操作的function,也可以使用memcpy,memset等function
但為了保證程式碼可攜,要儘量使用標準的function
//記憶體比較
RtlEqualMemory(Destination,Source,Length);
//記憶體複製,可重疊
RtlMoveMemory(Destination,Source,Length);
//記憶體複製,不可重疊
RtlCopyMemory(Destination,Source,Length);
//記憶體填充
RtlFillMemory(Destination,Length,Fill);
//將記憶體清成0
RtlZeroMemory(Destination,Length);
範例
VOID RtlTest()
{
PUCHAR pBuffer = (PUCHAR)ExAllocatePool(PagedPool,BUFFER_SIZE);
//用零填充記憶體
RtlZeroMemory(pBuffer,BUFFER_SIZE);
PUCHAR pBuffer2 = (PUCHAR)ExAllocatePool(PagedPool,BUFFER_SIZE);
//用固定位元組填充記憶體
RtlFillMemory(pBuffer2,BUFFER_SIZE,0xAA);
//記憶體拷貝
RtlCopyMemory(pBuffer,pBuffer2,BUFFER_SIZE);
//判斷記憶體是否一致
ULONG ulRet = RtlCompareMemory(pBuffer,pBuffer2,BUFFER_SIZE);
if (ulRet==BUFFER_SIZE)
{
KdPrint(("The two blocks are same.\n"));
}
}
訂閱:
張貼留言 (Atom)
winsock2.h redefined問題
解法: #define _WINSOCKAPI_ // stops windows.h including winsock.h #include #include
-
昨天要回新竹的路上,差點A到一臺摩托車, 可以清楚看到路口是綠燈,可是這位老兄,竟然從左方過來要待轉, 旁邊的女騎士也差點A到他,尖叫了一聲... 緊急煞車的同時,第一次感受到ABS做動,還好平安無事... 奉勸大家車子一定要裝行車記錄器阿~
-
呼,終於寫到最後一篇了,我竟然拖了半年才寫完… 呵,不過總算是有始有終啦!! 最後一天的早上,是自由活動的時間,我們跟著導遊前往市區觀光, 一般名牌族的,會跟著導遊去購買包包、配件, 而我跟小丸子沒啥錢,只能在市區附近拍拍照, 首先,我們搭捷運前往市區, ...
-
離開了超級天堂海灘,接著,我們來到了天堂海灘, 由這張入門的壁畫,就知道,這裡可是天體營的”天堂”呢!!! 當然囉,猥褻的動作,一定是不能少的!!! 覺得自己好像是一個色老頭阿…^^” 入口處呢,還有一間鴿舍(?),連鴿舍都可以弄得很好看~ ...
沒有留言:
張貼留言