UMDF-应用程序级别的锁定设备
我正在通过 WinUsb 使用 UMDF 为我们的设备编写一个简单的 USB 驱动程序。该驱动程序可以被多个应用程序同时使用。 我需要实现 WdfDeviceLevel\WdfObjectLevel 没有提供的自定义锁定系统: 我想要一个原子写读功能:
- 获取设备上的锁
- 写入一个值
- 读取一个值
- 释放锁
我如何实现这样的功能?我找不到如何在界面函数之上公开自定义函数。 除了这个特定的原子函数之外,如果我能让每个应用程序都能够获取阻止所有其他应用程序访问该设备的锁,那就太好了。
I'm writing a simple USB driver for our device using UMDF over WinUsb. The driver can be used by multiple application concurrently.
I need to achieve a custom locking system that the WdfDeviceLevel\WdfObjectLevel doesn't give me:
I want an atomic write-read function:
- obtain a lock on the device
- write a value
- read a value
- release the lock
How can I implement such a function? I could not find how to expose custom function on top of the the interface's functions.
In addition to this particular atomic function, it would be nice if I could give each application the ability to obtain a lock that will block all other applications from accessing the device.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
由于我们使用的驱动程序只能通过专用的 dll 访问,因此我在 dll 级别添加了互斥锁来模拟原子函数。
As the driver we are using can only be accessed via a dedicated dll, I added mutex locks in the dll level to imitate an atomic function.