Для доступа к устройствам Windows CE из настольного приложения я использовал самописную DLL. Эта DLL использовала RAPI для вызова необходимых функций на стороне устройства. Все работает исправно уже много лет.
Но теперь я хотел использовать эту DLL в службе Windows. И это не удалось. Отладка показывает, что не работает функция CeRapiInitEx(). И перед сбоем он блокируется примерно на 5 секунд, хотя MSDN говорит, что это асинхронная неблокирующая функция. GetLastError() дает мне 1444L «Неверный идентификатор потока».
Кто-то в Интернете упомянул, что RAPI не работает из служебных потоков в ActiveSync 4. Хотя информация скудная и отрывочная.
У кого такая же проблема или просто есть что сказать? Правда ли, что RAPI недоступен из службы Windows? Если да, то есть ли обходные пути?