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