日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

使用WinIO库实现保护模式下的IO和内存读写

發布時間:2023/12/19 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 使用WinIO库实现保护模式下的IO和内存读写 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

問題已解決:

  原因是函數的調用方式與WinIO中不一致,使用的時候漏掉了__stdcall

? ? ? 函數原定義為:

? ? ?

?

在實際的GPIO讀寫中遇到以下問題:

  SetPortVal可正常寫入,但是GetPortVal無法讀取,程序崩潰,問題事件名稱:BEX, 具體原因正在調查。

?

?

以下內容為參考:

使用WinIO庫實現保護模式下的IO和內存讀寫

?

本篇文章主要介紹了"使用WinIO庫實現保護模式下的IO和內存讀寫(_inp,_outp) ",主要涉及到使用WinIO庫實現保護模式下的IO和內存讀寫(_inp,_outp) 方面的內容,對于使用WinIO庫實現保護模式下的IO和內存讀寫(_inp,_outp) 感興趣的同學可以參考一下。

?

使用WinIO庫實現保護模式下的IO和內存讀寫(_inp,_outp)

在WindowsXP等NT內核的操作系統中,#include?"conio.h"中定義的端口讀寫函數_inp,_outp已經不能直接使用了,這是因為Window的保護模式不允許對IO直接進行直接操作。但是在工業控制領域,對IO的讀寫是最基本的操作,尤其是對ISA總線或并口這類固定地址的存儲設備的訪問,我們必須能夠高效的進行IO讀寫來進行數據采集。

這里給出的解決方案是使用http://www.internals.com/提供的解決方案,即使用其網站上的WinIO.dll。其關鍵在與InitializeWinIo()函數調用之后,_inp,_outp函數可以被成功調用,在使用結束后再調用ShutdownWinIo()即可。

需要注意的是在程序運行的目錄下必須要有Wio.dll,Wio.sys和Wio.vxd。也就是說我們調用WinIO庫來實現IO讀寫實質上是在調用一個驅動,只有驅動級別的可執行文件才能解除保護模式(可能是進入了內核模式),實現對IO的直接讀寫。

總結

以上是生活随笔為你收集整理的使用WinIO库实现保护模式下的IO和内存读写的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。