Вопрос

Я пишу простой USB-драйвер для нашего устройства, используя UMDF через WinUSB.Драйвер может использоваться несколькими приложениями одновременно.Мне нужно создать пользовательскую систему блокировки, которую мне не дает WdfDeviceLevel \ WdfObjectLevel:Мне нужна атомарная функция записи-чтения:

  1. получить блокировку на устройство
  2. напишите значение
  3. считывание значения
  4. отпустите замок

Как я могу реализовать такую функцию?Я не смог найти, как выставить пользовательскую функцию поверх функций интерфейса.В дополнение к этой конкретной атомарной функции было бы неплохо, если бы я мог предоставить каждому приложению возможность получать блокировку, которая заблокирует доступ всех других приложений к устройству.

Это было полезно?

Решение

Поскольку к используемому нами драйверу можно получить доступ только через выделенную библиотеку dll, я добавил блокировки мьютекса на уровне библиотеки dll для имитации атомарной функции.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top