保存设备每个打开实例的数据
在 Windows 设备驱动程序中:
- 每个驱动程序信息存储在全局变量中
- 每个设备信息存储在
DEVICE_OBJECT.DeviceExtension
中据我了解,CreateFile
在内核空间中构造一个FILE_OBJECT
,因此设备的每个打开实例都有自己的FILE_OBJECT
。如果是这样,我可以将每个实例的信息保留在 IO_STACK_LOCATION.FileObject.FsContext
字段中吗?
In a Windows device driver:
- per-driver information is stored in global variables
- per-device information is stored in the
DEVICE_OBJECT.DeviceExtension
As far as I understand, a CreateFile
constructs a FILE_OBJECT
in the kernel space, so each open instance of a device has its own FILE_OBJECT
. If so, can I keep my per-instance information in the IO_STACK_LOCATION.FileObject.FsContext
field?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
阅读 MSDN 页面 对 FDO 表示“是”,对其他类型的驱动程序表示“否”。
注意:您是否实现了自己的 IRP_MJ_CREATE 函数?如果是,您可以使用该成员,因为您是文件对象的创建者。
Reading the FsContext discription of the MSDN page says yes for FDOs and no for other types of drivers.
NB: Do you implement your own IRP_MJ_CREATE function? If yes, you may use the member, due to you being the creator of the file object.