Ну почему сразу кривохак )
Задача такая:
Одно приложение открывает устройство1 и полноценно работает с ним.
Второе запущенное приложение должно определить, что устройство1 занято и подключиться к следующему, если такое существует, иначе написать сообщение о недоступности свободных устройств.
Уверен, что это как-то несложно решается, но вот что-то в голову ничего простого не приходит, кроме как завести что-то типа map-файла и помечать устройства.
Может у вас есть какие-то дельные мысли по этому поводу?)
Re[3]: Как узнать открыто ли было устройство?
От:
Аноним
Дата:
19.03.07 22:45
Оценка:
S>Может у вас есть какие-то дельные мысли по этому поводу?)
1) Немного недокументированно но быстро: поставить Exclusive в TRUE в IoCreateDevice в драйвере
2) Ввести в драйвере проверку SHARE_ACCESS флагов и возвращать STATUS_SHARING_VIOLATION в IRP_MJ_CREATE как делают все нормальные пацаны.
Re[4]: Как узнать открыто ли было устройство?
От:
Аноним
Дата:
26.03.07 13:58
Оценка:
О! спасибо!
Но я уже обошелся своим счетчиков в драйвере) Тем более, если он будет эксклюзивным, я не получу к нему доступ, чтобы считать с него информацию, если он уже будет открыт.
Вопрос вдогонку)
А случайно не знаете как реальные пацаны получают в драйвере DeviceID PCI карточки?