驱动中创建PDO,再创建符号链接,应用程序使用不了
一个键盘驱动过滤程序,开机启动,这个时候一切正常,上层应用CreateFile也OK.
这个时候,拔掉键盘,检测到这个拔动作之后,手动调用一次卸载函数(函数中删除了符号链接),
把所有的设备解绑并删除.然后,插入键盘,此时重新创建PDO,符号链接一系列初始化工作,重新附加
到键盘上,我跟踪程序看到这些初始化工作也都成功了.但是,重新创建之后,应用程序调用CreateFile
的时候,就失败返回值是2--无法找到文件.
可能是哪出了问题呢?
[解决办法]
你的是USB键盘吧?
应用程序打开的时候的句柄使用的是什么?初步估计是你的上层程序在拔出设备后,没有关闭原来的句柄,导致原来的句柄没有被正确的释放导致。
另外,没有看到你的设计,我不知道你在哪里做的删除动作,是在OnSupriseRemove里面吗?从你的感觉描述来看,是把驱动做了常驻内存,如果常驻了,要特别注意这块的问题。