91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

WinIO初始化失敗原因是什么

發布時間:2021-06-30 15:52:28 來源:億速云 閱讀:419 作者:chen 欄目:大數據

本篇內容主要講解“WinIO初始化失敗原因是什么”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“WinIO初始化失敗原因是什么”吧!

WinIO是一個能夠打開一些操作系統IO特權操作的一個庫,簡單的來說它加載了一些驅動。通過加載的驅動可以直接的訪問端口。在工控上,我們可以利用這個庫直接操作IO卡的地址。例如我最近在做的一個數控鉆銑床的IO卡和運動控制卡就是很老的一個卡,在WIN98下面工作很正常,但是在NT核心上就會出現非法指令調用的問題。這些非法指令來自于底層對IO卡和運動控制卡的直接地址訪問。在98時代,這些操作都沒有受到保護的,在NT核心下就會出現保護問題。經試驗,經過WinIO初始化載入驅動以后再進行IO卡直接訪問,很成功。

但應用的時候,就出現了一些莫名其妙的問題。應用WinIO只需要調用兩個函數InitializeWinIo(),和最后的ShutdownWinIo()即可。InitializeWinIo()將會返回一個bool值指示初始化結果。就是這個函數造成了許多困擾。

第一次困擾是在一次調試中,經常初始化失敗,一旦成功以后就總是成功的。剛開始以為是InitializeWinIo()以后沒有ShutdownWinIoI()造成的,后來看了WinIO的C Example證明只寫InitializeWinIo()一樣能夠進程一旦結束,由InitializeWinIo初始化的資源自然就結束了。所以不存在上次運行影響這次運行的事情。后來突然發現,WinIO相關的dll,vxd,sys竟然是綠色的。綠色在WindowsXP系統里面代表了文件是被EFS加密的。我為了工程的保密,把所有的工程目錄都進行了EFS加密。EFS加密會影響磁盤性能,原因就在于其加解密過程。但是這里很奇怪,可能是間歇性的EFS解密速度沒有跟上WinIO中加載驅動的速度,造成讀取的sys和vxd設備驅動是混亂的,最終導致加載失敗。將EFS加密取消,問題解決。

第二次困找在我用C#寫了一個dllimport,然后進行調用,結果,總是返回false。很疑惑,WinIO相關的文件都放到一起的,怎么還是這樣的呢?VS2005單元測試里也會失敗。究其原因還是路徑的問題造成。分析WinIO的源代碼,可以發現InitializeWinIo()會調用一個GetDriverPath這個函數:

bool GetDriverPath()
{
PSTR pszSlash;

if (!GetModuleFileName(GetModuleHandle(NULL), szWinIoDriverPath, sizeof(szWinIoDriverPath)))
return false;

pszSlash = strrchr(szWinIoDriverPath, '\');

if (pszSlash)
pszSlash[1] = 0;
else
return false;

strcat(szWinIoDriverPath, "winio.sys");

return true;
}

這里面已經很清楚的知道了什么情況下會false了。注意winio.sys存放的位置問題就能使之初始化正常。

其實還可以更加詳細的打印出InitializeWinIo()中每步的執行過程,這樣更容易判斷是哪個地方出現了問題。

就先寫到這里吧,WinIO是個很好很強大,很黃很暴力的一個庫~~~

到此,相信大家對“WinIO初始化失敗原因是什么”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

读书| 刚察县| 婺源县| 隆子县| 东港市| 黑龙江省| 怀安县| 亚东县| 邵武市| 玛纳斯县| 陇南市| 大悟县| 乌鲁木齐市| 威宁| 南京市| 武定县| 两当县| 社会| 闸北区| 长宁区| 桃源县| 九寨沟县| 浦北县| 吴川市| 内乡县| 石台县| 铁力市| 兴安盟| 南涧| 那坡县| 莒南县| 英吉沙县| 叶城县| 广饶县| 海原县| 临颍县| 若羌县| 禹州市| 崇左市| 安阳市| 扶风县|