看板 C_and_CPP 關於我們 聯絡資訊
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) VC++ 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) 問題(Question): 手邊有ㄧdevice, 若要將資料輸入,只要告知資料的實體記憶體位址,會自動去指定位置 往下連續搬固定長度資料 因此宣告了ㄧ個指到array的pointer, 原本很單純以為這就是實體記憶體位址 結果使用其他讀實體記憶體tool 發現讀出的值跟我想像不同 餵入的資料(Input): int Data[512];//初始值設為1 int *pData = Data; 預期的正確結果(Expected Output): 印出device資料內容 應該要都是1 錯誤結果(Wrong Output): 結果都是0 程式碼(Code):(請善用置底文網頁, 記得排版) 補充說明(Supplement): -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 42.73.19.49 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1447922147.A.5C4.html
stupid0319: 實體記憶體只能在Ring0下存取,不然只能存取虛擬記憶體 11/19 16:59
stupid0319: Data[512]存在實體記憶體的哪裡要看系統怎麼分配 11/19 17:05
zaqimon: 也許你需要使用DeviceIoControl之類的方式吧 11/21 14:51
zaqimon: 或是使用CreateFileMapping 11/21 15:12