2011-10-03 113 views
1

我寫了一些特定功能的Windows驅動程序。它沒有任何問題。但是,我通過ioctl接口調用它時遇到了問題。Windows 7驅動程序ioctl調用

在我的應用程序中,我調用CreateFile並嘗試傳遞給我的驅動程序的名稱。但是,它給我一個錯誤,「無法打開設備」和錯誤代碼是0x03。我使用的是與我的司機完全一樣的名字。

從cmd行應用程序打開驅動程序的名稱:\ DosDevice \ my_driver 傳遞給CreateFile的名稱也是相同的。 有什麼方法可以在Windows命名空間中找到我的驅動程序的名稱是什麼?

回答

2

Win 32錯誤0x03是ERROR_PATH_NOT_FOUND。嘗試在設備名稱的前面添加「\\。\」。所以它變成了「\\。\ DosDevice \ my_driver」,或者它可以簡單地是「\\。\ my_driver」,只是爲了清楚這是兩個斜線,一個點,然後是另一個斜線。這應該把你放入設備命名空間,否則我相信CreateFile只是試圖在文件系統上打開一個文件。

+0

我沒有嘗試,最初卻沒有神祕工作。有什麼方法可以讀取Windows命名空間。當我的驅動程序安裝完成後,我可以去閱讀它的名字嗎?我只是想知道是否有一些錯誤的名稱,正在註冊與Windows。 –

+0

是否有任何與UNICODE啓用編譯?是的,我需要爲我的應用程序明確啓用unicode。 –

+0

得到了答案。我們需要在編譯時指定「_UNICODE」。 –

相關問題