【问题标题】:Using a driver without .inf and .cat使用不带 .inf 和 .cat 的驱动程序
【发布时间】:2015-07-07 06:39:52
【问题描述】:

我正在升级一个旧应用程序,我需要添加一个驱动程序,希望它可以工作。

我只有这个驱动程序的 .sys,有没有可能让我的 MFC 应用程序工作?

截至目前,这是我已经...总结的代码。

    m_hDevice = CreateFile("C:\\Windows\\system32\\drivers\DRIVERNAME",
                         GENERIC_READ | GENERIC_WRITE,
                         FILE_SHARE_READ | FILE_SHARE_WRITE,
                         NULL,
                         OPEN_EXISTING,
                         0,
                         NULL);

        bResult = DeviceIoControl(m_hDevice,
                     IOCTL_SERIAL_GET_MODEMSTATUS,
                     NULL,
                     0,
                     &ulModemStatus,
                     sizeof(ulModemStatus),
                     &nLength,
                     NULL);
DWORD error = GetLastError();

因此,错误 = 87,即 ERROR_INVALID_PARAMETER

附:这些驱动程序是为 Windows NT 制作的。他们应该工作吗?如果我没有正确安装 .inf 和 .cat 文件,我是否有问题?

谢谢。

【问题讨论】:

  • 驱动程序是否控制实际的硬件?如果有,设备管理器中是否列出了该硬件?
  • 是的,它将控制一个实际的硬件。这是一个简单的开/关。不,它没有列在设备管理器中……截至目前,我的安装程序中有我的应用程序,只是将 .sys 放在 system32/drivers 中……我不确定它是否正确。 ..以前从未与司机合作过
  • 您不能仅通过打开文件来安装或运行驱动程序。但有时可以在命令行或 CreateService API 上使用sc create 安装驱动程序。

标签: windows mfc driver


【解决方案1】:

设备管理器中没有枚举设备的事实意味着您可能有一个“旧版驱动程序”(即不参与即插即用),因此 inf 文件对您没有任何好处.您唯一的希望是打开设备管理器,然后从“操作”菜单中选择“添加旧硬件”并按照提示操作。

注意:您需要运行 32 位 Windows 才能正常工作。

更多信息可以在这里找到: https://technet.microsoft.com/en-us/magazine/ee851685.aspx

【讨论】:

  • 感谢您的评论。我刚刚注意到这个驱动程序不适用于我正在升级的以前版本的程序。我只需要编写驱动程序...再次感谢您的帮助。附言Add Legacy Hardware 还要求我提供 .inf 文件,是的,它真的很旧,它是为 Windows NT 设计的。
猜你喜欢
  • 2020-07-21
  • 2011-08-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-04-15
  • 2014-03-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多