Prev: What is the difference between using IOCTL to write/read IO ports vs. modifying IOPM and using _INP/OUTP_ ??
Next: Adapting hidusbfx2 sample to use isoc transfers
From: Tim Roberts on 2 Sep 2009 01:37 L337 <vern.engineering(a)gmail.com> wrote: > >Brief question for someone who sort of understands the Windows IO >Manager and IO subsystem model. I have a PCI device that operates at >0x300 IO mapped address. To use this card, we used a DLL written in C >and used in VB6 back in Win 98. In WinXP, I now use Userport which >claims it modifys Permission MAP of the Windows Subsystem to let all >user mode programs run at Ring 0. No, that's not what it does. It does modify the I/O permission map, but the effect of that is to tell the processor that I/O instructions are allowed to be executed at ring 3 without trapping to kernel mode. Your user mode code is still in ring 3. >When I use the C dll to do writes and reads, I achieve a speed of 1.65 >uS between writes. Decent speed. But I wonder if I can get any >better/faster then this? No. The I/O port instructions simply do not run any faster than that. The low I/O ports are ISA compatible, and are limited by some of the motherboard components to essentially ISA bus speeds. -- Tim Roberts, timr(a)probo.com Providenza & Boekelheide, Inc. |