2011-10-06 98 views
3

我嘗試瞭解如何訪問並行端口以在Windows7機器上寫入某些位。該並行端口位於PCI-Card上,並由Windows7自動安裝,並可作爲LPT2進行監視。分配給端口的地址是E-E-E807和 E480-E487 。這在我看來像非pyhsical地址。我已經嘗試過使用不同的方法在端口上編寫,比如使用http://www.logix4u.net/inpout32.htm或parport.dll中的inpout32.dll作爲Java解決方案。爲了釋放這些端口,我安裝了Userport,但我認爲使用這個應用程序只能釋放實際的物理端口。 那麼,我該如何將端口地址改爲378,或讓我的應用程序寫在虛擬地址與inpout32.dll?在Windows 7上寫入並行端口

我已經嘗試了一些Google搜索建議,例如在BIOS中禁用378地址,因此它對於PCI卡使用的beeing是免費的。或者像在LPT1,LPT2,LPT3之間切換,但似乎沒有任何工作。

編輯:也許有人知道這個PCI卡的特定驅動程序,以便我不需要使用默認的驅動程序?它是:http://www.delock.de/produkte/gruppen/IO+Karten/1x_Parallel_UND_2x_Seriell_-_PCI_Karte_89004.html

+0

只是爲了確保你使用32位或64位Win 7? – user957902

+0

64位Win 7. AMD速龍II X3 455處理器3.30 GHz。 –

+1

我在想,64位的操作系統是你的問題。您一直使用的dll驅動程序是32位,正在與wow64層進行通信,而不是物理硬件。我會懷疑64位地址空間是不同的。 – user957902

回答

0

E800-E807和E480-E487是16位I/O地址。所以,你可以使用像WinIO這樣的工具包來讀/寫它們。請注意,因爲它是PCI設備,所以在啓動時會動態分配I/O地址,並且可能隨時更改。一個寫得很好的程序會問Windows什麼是卡的I/O地址,並用它來代替硬編碼。