This is an old topic from the previous forum. I'm still searching for a solution, so here goes again.
I've written a program that runs a laboratory. Controls several racks of electronics, collects data and interactively displays/plots it for the user. I've tried to move as much of the equipment as possible to a GPIB interface, for which I have a convenient dll/lib interface. Unfortunately, several components must be controlled from a home-brewed digital I/O board. The weakest link (besides my programming skill) is my ability to perform direct read and writes to port addresses, necessary to talk with this board. In the previous DOS version of the program, I simply linked to a C routine which used the routines outp and inp. This does not work under NT because "user" level applications are prevented from directly addressing hardware. My current kludge is to use a commercially available kernel mode driver, which is designed to provide access to the paralel ports, is way over-designed for this task and has a couple of bugs in it, to boot. I'd like something like the SPort routines included in CVF for a general hardware address read and write. Another solution would be an example of how to use the operating system routines such as ReadPortUchar. Another would be a cost-effective (read that, cheap) package that automates writing kernel mode drivers. The WindRiver product is >$1500 even for academics, so doesn't fit this description.
Anyone out there with experience in this area?
Thanks in advance for any suggestions.