В общем случае зависит от конкретной сборки WinCE. Чтоб получить доступ к портам нужны API мапирования памяти регистров портов в память процесса типа VirtualCopy и т.п. Чтоб работать с прерываниями нужен доступ к соотвествующему API: InterruptInitialize и т.п.. Увы в WinCE6 всё это функции режима ядра, не доступные из режима пользователя (в отличие от WinCE 5). Поэтому нужен либо драйвер, либо dll, загружаемая в режиме ядра. В некоторых сборках CE6 (например Colibri) уже включен API для доступа из пользовательских приложений к мапированию памяти и прерываниям. В этом случае можно обойтись без написания драйвера. Иначе проще всего написать потоковый драйвер, можно пользовательского режима. Нечего особо сложного, просто обычная dll с набором из нескольких стандартизованных вызовов.
Драйвера под WinCE имеют мало общего с драйверами для NT и т.п. ИМХО попроще.
|