Для считывания данных с устройства Bluetooth (Disto) устройство связывается с ПК с помощью парного кода, а затем для открытия определенного COM-порта используется следующий код:
Port.Format(Str("\\\\.\\COM%d"),m_DistoSerialPort);
CreateFile(Port, GENERIC_READ | GENERIC_WRITE, 0, 0, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);
Он работает без проблем во всех версиях Windows и всех подобных устройствах (Disto). Только в Windows 8 (и 8.1), когда дело доходит до этой строки, в правом углу экрана появляется маленькое сообщение «Добавление устройства. Нажмите, чтобы настроить Disto xxxx», а затем не удается подключиться, и код возвращается с «E_ACCESSDENIED Ошибка общего доступа запрещена».
Кроме того, снова при выполнении этого метода включается «Разрешить подключение устройства» (в значке Bluetooth на панели задач). В то время как в Windows 8 нажатие на это не помогает, в Windows 7 он снова запрашивает код пары, и этот метод CreateFile работает нормально.
Означает ли это, что устройство не сопряжено должным образом, хотя оно было сопряжено? Это проблема с открытием порта или установлением соединения?
Кто-нибудь знает, что здесь происходит не так?
Благодарю.
РЕДАКТИРОВАТЬ:
Даже если я удалю доступ GENERIC_READ или GENERIC_WRITE, это не удастся.
Задача ещё не решена.