From: Tim Roberts on
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.