Software / Lib / Enable NT IO / PortTalk

Search 搜索
Home Home

There are two solutions to solving the problem of I/O access under Windows NT. The first solution is to write a device driver which runs in ring 0 (I/O privilege level 0) to access your I/O ports on your behalf. Data can be passed to and from your usermode program to the device driver via IOCTL calls. The driver can then execute your I/O instructions. The problem with this, is that it assumes you have the source code to make such a change.
Another possible alternative is to modify the I/O permission bitmap to allow a particular task, access to certain I/O ports. This grants your usermode program running in ring 3 to do unrestricted I/O operations on selected ports, per the I/O permission bitmap. This method is not really recommended, but provides a means of allowing existing applications to run under windows NT/2000. Writing a device driver to support your hardware is the preferred method. The device driver should check for any contentions before accessing the port.
However, using a driver such as PortTalk can become quite inefficient. Each time an IOCTL call is made to read or write a byte or word to a port, the processor must switch from ring 3 to ring 0 perform the operation, then switch back.
The porttalk device driver comes complete with source code. It provides the facility to modify the IO permission bitmap and/or write and read to I/O ports via IOCTL calls.
ioexample.c1.6kB2015-12-25 19:40117
porttalk.pdf24.0kB2015-12-25 19:40123
porttalk22.zip66.4kB2015-12-25 19:40133
Readme.txt1.9kB2015-12-25 19:40149
0 folder, 4 files (93.9kB)
© Mon 2024-4-22  Guidance Laboratory Inc. Hits:0 Last modified:2015-12-25 19:40:57