【问题标题】:V4 printer driver not listed after installing using INF file使用 INF 文件安装后未列出 V4 打印机驱动程序
【发布时间】:2017-09-06 22:50:03
【问题描述】:

我关注this Microsoft tutorial,开发了V4 printer driver

Here 是完整的工作解决方案。

对于安装,我只需右键单击 INF 文件并单击安装。

我得到以下确认:

但驱动程序没有列在打印管理下。

可能是什么问题?是我安装的方式不对还是代码有问题。

我尝试将日志记录添加到驱动程序源代码中的所有函数中。而且似乎没有人写。所以驱动还没有自行安装。

仅供参考:我已将 PC 置于测试签名模式,并且驱动程序签名强制也被禁用。

【问题讨论】:

    标签: c++ visual-studio printing driver wdk


    【解决方案1】:

    经过大量挖掘,我找到了解决方案。我正在分享这个,以便面临类似问题的人可以节省很多精力。

    第一件事。在设备驱动程序安装中,发生了两件事。

    1. 驱动程序文件被上传/复制到驱动程序存储区(这里是:%windir%\System32\DriverStore\FileRepository\
    2. 插入相应设备后,即进行实际安装。对应的设备表示您在 INF 文件中指定的设备/型号。

    这是传统的路径。

    因此,当您尝试使用 INF 文件进行安装时,驱动程序文件会上传到驱动程序存储的文件存储库中。我认为如果在 INF 安装期间插入任何受支持的型号,驱动程序将完全安装(尚未测试)。

    安装。 现在我的要求要求先安装并列出驱动程序。为此,您可以使用函数InstallPrinterDriverFromPackage function 显式安装它。这是一个使用它的例子:

    HRESULT Install(LPCTSTR pszInfPath)
    {
        HRESULT ret = InstallPrinterDriverFromPackage(
            NULL,
            pszInfPath, //path of the INF file in the Driver Store
            L"MyV4PrintDriver", //the name of the driver as in the INF file
            //L"Windows NT x86", 32 bit environment
            L"Windows x64",
            0); 
    
        if ( ret != S_OK )
        {
            _com_error err(ret);
            LPCTSTR errMsg = err.ErrorMessage();
            wcout << errMsg << endl;
        }
        return ret;
    }
    

    更多。您可以使用UploadPrinterDriverPackage函数将打印机驱动程序文件上传到驱动程序商店。

    【讨论】:

    • 嗨。我遵循了相同的教程,并且能够在打印机中列出我的驱动程序。目前,它在哪里保存打印文件?节省与否?你能告诉我如何控制这个驱动程序中的打印按钮吗?意味着如果我想在线上传那个特定的文件怎么办?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-12-01
    • 1970-01-01
    • 2018-08-22
    • 1970-01-01
    • 2014-04-25
    • 2023-03-16
    • 2019-05-12
    相关资源
    最近更新 更多