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做動,還好平安無事... 奉勸大家車子一定要裝行車記錄器阿~
-
離開了超級天堂海灘,接著,我們來到了天堂海灘, 由這張入門的壁畫,就知道,這裡可是天體營的”天堂”呢!!! 當然囉,猥褻的動作,一定是不能少的!!! 覺得自己好像是一個色老頭阿…^^” 入口處呢,還有一間鴿舍(?),連鴿舍都可以弄得很好看~ ...
-
吃過午飯之後,我們接著前往 Nafplio,Nafplio是希臘獨立後, 所選定的首都地點,整個城市有許多新古典主義的建築, 有紅色的屋頂及白色的石牆,散發著濃濃的度假氣息, 可惜因為得趕行程的關係,只有在這裡拍拍照, 這個位於海上的小城堡Bou...
沒有留言:
張貼留言