我们编写了一个 Windows 设备驱动程序来访问我们的定制 PCI 卡。驱动程序使用 CreateFile 来获取卡的句柄。
我们最近在一次安装中遇到了麻烦,因为该卡似乎停止工作。我们尝试更换卡(更换似乎也不起作用)。计算机供应商更换了主板,但两张卡仍然无法工作。我们把卡片放在另一台电脑上,都运行良好。
我们现在办公室里有电脑供检查。Windows 设备管理器照常在其他设备中列出我们的卡,并表示它工作正常。但是,当它尝试连接到卡时,我们的驱动程序初始化失败。
我们通过一些额外的调试创建了驱动程序的测试版本,并确定 CreateFile 失败。它返回 INVALID_HANDLE_VALUE,因为它应该在失败时返回。GetLastError 指示错误是访问被拒绝。
既然我们是以本地管理员的身份登录系统的,那么什么可以拒绝访问设备呢?