zoukankan      html  css  js  c++  java
  • 解决安装驱动时提示的“未签名的驱动程序”警告信息!!

    最近编写驱动,并作了个安装程序。但是发现在安装时总是有“未数字签名的驱动”这个警告。只有手动将 系统—〉硬件-〉签署设备驱动程序 中的文件签名验证改为“忽略”,就不会出现这个提示框。可是不知道在注册表中哪个位置,在网上搜集了一些资料,最后在“驱动开发网”找到了相关的文章,就是修改HKEY_LOCAL_MACHINE下的Software//Microsoft//Driver Signing和Software//Microsoft//Non-Driver Signing//这连个键下的Policy ,将值改 0 即可!我经过测试,发现在我机器上还是出现了提示!!我想是否是在当前用户的注册表下呢?结果发现在KEY_CURRENT_USER下果然还有一个Software//Microsoft//Driver Signing键!!将值改为 0 后!通过!!!

    以下是InstallShield的安装脚本!^_^

    //全局变量保存状态值

    STRING g_svDriverSigning, g_svNonDriverSigning, g_svUserDriverSigning;
    NUMBER g_nvSize, g_nvUserSize, g_nvNonSize;
    /*
        未签名的驱动程序安装操作 
        0    默认继续
        1    允许安装但发出警告
        2    禁止安装
    */ 
    function NonDriverSigning(bEnable)
    STRING szKey, svValue, szValue;
    STRING szKeyName;        
    NUMBER nvType,nvSize;
    begin
        RegDBSetDefaultRoot( HKEY_CURRENT_USER );
        //---------------------------------------
        //设置HKCU下的未签名的驱动程序安装操作       
        szKey = "Software////Microsoft////Driver Signing////";
        szKeyName = "Policy";  
        nvType = REGDB_NUMBER;
       
        if ( bEnable ) then  
            //保存原值
            if ( RegDBGetKeyValueEx( szKey, szKeyName, nvType, g_svUserDriverSigning,
                            g_nvUserSize ) < 0 ) then
                g_svUserDriverSigning = "0";
                g_nvUserSize = -1;
            endif;  
            //设置为"默认继续"
            szValue = "0";
            nvSize = -1;
        else   
            //恢复原值
            szValue = g_svUserDriverSigning;               
            nvSize = g_nvUserSize;
        endif;                       
       
        //设置键值   
        if (RegDBSetKeyValueEx ( szKey , szKeyName , nvType , szValue ,
                                nvSize ) < 0) then
               //return -1;
               ;
        endif;
       
        RegDBSetDefaultRoot( HKEY_LOCAL_MACHINE);   
        //---------------------------------------
        //设置HKLM下的未签名的驱动程序安装操作   
        szKey = "Software////Microsoft////Driver Signing////";  
        szKeyName = "Policy";
        nvType = REGDB_BINARY;       
           
        if ( bEnable )  then       
            //保存原值
            if ( RegDBGetKeyValueEx( szKey, szKeyName, nvType, g_svDriverSigning,
                                g_nvSize ) < 0 ) then
                g_svDriverSigning = "/0/0/0/0";
                g_nvSize = 4 ;
            endif;
                
            //设置为"默认继续"  
            szValue = "/0/0/0/0";
            nvSize = 4;           
        else   
            //恢复原值
            szValue = g_svDriverSigning;
            nvSize = g_nvSize;       
        endif;     
                   
        //设置键值
        if (RegDBSetKeyValueEx (szKey, szKeyName,  REGDB_BINARY, szValue,
                              nvSize) < 0) then
               return -1;
        endif;         
       
        //---------------------------------------
        //设置HKLM下的未签名的非驱动程序安装操作   
        szKey = "Software////Microsoft////Non-Driver Signing////";  
        szKeyName = "Policy";
        nvType = REGDB_BINARY;
       
        if ( bEnable )    then
            //保存原值
            if ( RegDBGetKeyValueEx( szKey, szKeyName, nvType, g_svNonDriverSigning,
                                g_nvNonSize ) < 0 ) then
                g_svNonDriverSigning = "/0/0/0/0";
                g_nvNonSize = 4;
            endif;   
           
            //设置为"默认继续"   
            szValue = "/0/0/0/0";
            nvSize = 4;           
        else
            //恢复原值
            szValue = g_svNonDriverSigning;
            nvSize = g_nvNonSize;       
        endif;                 
       
        //设置键值
        if (RegDBSetKeyValueEx (szKey, szKeyName,  REGDB_BINARY, szValue,
                              nvSize) < 0) then
               return -1;
        endif;     
     
        return 0;    
    end;

  • 相关阅读:
    程序员面试金典-整数对查找
    hihocoder-1552-缺失的拼图
    论文: YOLO9000-Better,Faster,Stronger
    hihocoder-1524-逆序对
    hihocoder-1546-集合计数
    hihocoder-1543-SCI表示法
    Oracle中的定时任务JOB
    JS中时间戳处理
    Boostrap小技巧
    Struts标签 logic:iterate简单使用
  • 原文地址:https://www.cnblogs.com/xiaowangba/p/6314614.html
Copyright © 2011-2022 走看看