Hi,
maybe this is a stupid answer, BUT: why don't you use the NI-DAQ functions DIG_In_Prt() and DIG_Out_Prt() to address your DIO96 ? Using the ANSI C port in and out functions forces you to address directly the device, instead of using a higher level programming. I worked with the above functions and they allow simple I/O on ports and lines quite easily. If your concern is instead to obtain higher throughputs, maybe the DIO96 is not enough efficient, and you should switch to a DIO-32HS board.
In addition, to use the inp() and outp() functions under WinNT (and Win2K is designed on WinNT) it is necessary to load the low-level support driver.
Hope this helps....
best regards,
Marco