[問題] VC++ DeviceIOControl win7和XP的差異

看板C_and_CPP (C/C++)作者 (cansister)時間12年前 (2013/10/18 17:31), 編輯推噓0(003)
留言3則, 1人參與, 最新討論串1/1
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) VC++ 2005 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) WINDDK 6001 問題(Question): 最近使用DeviceIOControl時,遇到一個問題,煩請大家指教。 當 device 回傳 NACK 時,在win7 和 XP下使用 DeviceIOControl return值不同, 照理說值應該要一樣才是。 (1) Win 7: return TRUE (2) XP: return FALSE XP 回傳 FALSE 後利用 GetLastErr() 會取得 Error Code = 1117 ERROR_IO_DEVICE1117 (0x45D) The request could not be performed because of an I/O device error. 感覺XP回應蠻正常的。 餵入的資料(Input): 預期的正確結果(Expected Output): 在收到 NACK後,DeviceIOControl 在 win7 和 XP 都要回傳 FALSE 錯誤結果(Wrong Output): win7 下回傳 TRUE 程式碼(Code):(請善用置底文網頁, 記得排版) 補充說明(Supplement): -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 219.87.157.211 ※ 編輯: cansister 來自: 219.87.157.211 (10/18 17:51)

10/20 11:55, , 1F
Check ur driver. DeviceIoControl just pass the params
10/20 11:55, 1F

10/20 11:56, , 2F
to your kernel drivers. The return value depends on
10/20 11:56, 2F

10/20 11:56, , 3F
the return value in your driver function, DispatchIo.
10/20 11:56, 3F
文章代碼(AID): #1IOF_en5 (C_and_CPP)
文章代碼(AID): #1IOF_en5 (C_and_CPP)