驱动程序读取数据文件问题

小火龙呢 2019-07-03 10:42:53
模拟了一个USB设备,暂且可认为是U盘,设备中的数据存放在文件中,驱动安装完成的时候会创建数据文件。一个电脑可以安装多个这样的设备。

问题:每一个设备都有自己的数据文件,怎么才能让第2个,第3个设备创建数据文件,不与第1个冲突,之后读取的时候不会读取错误。
...全文
1997 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
worldy 2020-12-31
  • 打赏
  • 举报
回复
USB设备有一个PID、VID,驱动是通过这两个ID识别一种设备,同时还有一个序列号,相同的设备只能通过读取序列号进行区分(U盘会映射到不同的盘符)
  • 打赏
  • 举报
回复
你好,请问在注册HidRegisterMinidriver 时有什么需要注意的吗?我在使用这个函数后编译都不能通过,它提示未定义
小火龙呢 2019-07-23
  • 打赏
  • 举报
回复
设备实例路径在驱动代码中使用哪个函数能获取到?
小火龙呢 2019-07-08
  • 打赏
  • 举报
回复
我的驱动是 HidRegisterMinidriver 注册的微型驱动,使用IoGetDeviceObjectPointer 返回失败。 有没有办法在当前的驱动代码中获取到 当前设备的特定值?比如硬件id .
小火龙呢 2019-07-04
  • 打赏
  • 举报
回复
引用 2 楼 melo_fang 的回复:
如果是真实的U盘设备,依次插入的时候,会按照累加的思想依次被分配好sda,sdb,sdc...sdaa, 所以如果两个一模一样的U盘,最后区分是通过UUID来做的 如果是虚拟设备,那么数据保存的文件其实也可以查看类似的思路,创建各自对应的文件: 1.如果简单依靠加载顺序,那么在打乱加载顺序后时会出现文件与设备不符的情况 2.设备的加载是依靠自定义假的设备资源,那么定义的硬件资源是否一致,如果你这里加载设备所有信息一致,其实不存在区分的概念。如果不一致,在创建文件的时候,应该加入这些信息来区分
我想在驱动安装完之后获取一下 设备实力路径,这个没安装一个USB设备,是不一样的,这样作为创建数据文件的一个依据,不知道可不可以?
小火龙呢 2019-07-03
  • 打赏
  • 举报
回复
如果是一个真实的USB设备,数据是存在设备中,重启电脑什么的,数据不会丢失。现在我是通过驱动虚拟了一个设备,数据不能总在内存中,每次数据变化就写入文件中保存。
melo_fang 2019-07-03
  • 打赏
  • 举报
回复
如果是真实的U盘设备,依次插入的时候,会按照累加的思想依次被分配好sda,sdb,sdc...sdaa,
所以如果两个一模一样的U盘,最后区分是通过UUID来做的

如果是虚拟设备,那么数据保存的文件其实也可以查看类似的思路,创建各自对应的文件:
1.如果简单依靠加载顺序,那么在打乱加载顺序后时会出现文件与设备不符的情况
2.设备的加载是依靠自定义假的设备资源,那么定义的硬件资源是否一致,如果你这里加载设备所有信息一致,其实不存在区分的概念。如果不一致,在创建文件的时候,应该加入这些信息来区分

21,597

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 驱动开发/核心开发
社区管理员
  • 驱动开发/核心开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧