UMDF- блокировка устройства на уровне приложения
-
09-10-2019 - |
Вопрос
Я пишу простой USB-драйвер для нашего устройства, используя UMDF через WinUSB.Драйвер может использоваться несколькими приложениями одновременно.Мне нужно создать пользовательскую систему блокировки, которую мне не дает WdfDeviceLevel \ WdfObjectLevel:Мне нужна атомарная функция записи-чтения:
- получить блокировку на устройство
- напишите значение
- считывание значения
- отпустите замок
Как я могу реализовать такую функцию?Я не смог найти, как выставить пользовательскую функцию поверх функций интерфейса.В дополнение к этой конкретной атомарной функции было бы неплохо, если бы я мог предоставить каждому приложению возможность получать блокировку, которая заблокирует доступ всех других приложений к устройству.
Решение
Поскольку к используемому нами драйверу можно получить доступ только через выделенную библиотеку dll, я добавил блокировки мьютекса на уровне библиотеки dll для имитации атомарной функции.