免费体验120秒视频_榴莲榴莲榴莲榴莲官网_2021国产麻豆剧果冻传媒入口_一二三四视频社区在线
當前位置:首頁文章首頁 IT學院 IT技術

USB 驅動自動卸載方法

作者:  來源:  發布時間:2011-12-15 0:50:37  點擊:

  最近在作一個項目,有驅,要求 USB 驅動自動安裝、卸載。這里,就卸載部分提供一些

  線索,供大家賞析。 ;)

  雖然,MS 不再支持 Win98 了,但是,我們還是要考慮盜版的 Win98 用戶們,所有從

  Win98 為代表的 Win9x 說起。

  [color=royalblue][u]Win9x 系統上的卸載 [/u][/color]

  1). 刪除 .inf 和 .sys; (%Windir%\inf\, %Windir%\system32\drivers\)

   2). 刪除注冊表中的 HKLM\Enum\USB\Hardware_ID;(你的 inf 文件中應該有)

  [color=royalblue][u]WinNT 系統上的卸載 [/u][/color]

   相對來說, WinNT 系統上的刪除要復雜些,特別是權限的原因:

  1). 刪除 .inf 和 .sys; (%Windir%\inf\, %Windir%\system32\drivers\)

   2). 刪除注冊表中的

  [quote]

  a). HKLM\SYSTEM\CurrentControlSet\Control\Class\{CLASS_ID}\000x

  b). HKLM\SYSTEM\CurrentControlSet\Enum\USB\Hardware_ID

  c). HKLM\SYSTEM\CurrentControlSet\Services\Your_Service

  [/quote]

  a). 需要枚舉 CLASS_ID 下的各個子鍵,并且獲取其中的 MatchingDeviceId 看是否為

   我們的驅動的 Hardware_ID, 然后獲取 InfPath 的值,并去 %Windir%\Inf 下刪除之;

   b). 需要一個權限的修改。代碼可以參見后面。

   c). 是可選的,可以不刪除,也可以刪除。

  [注意]: NT 上刪除子鍵,如果該鍵下還有子鍵則需要使用 SHDeleteKey:

  [quote]

   Deletes a subkey and all its descendants. The function will remove the key and

  all of the key's values from the registry.

  [/quote]

  [color=royalblue][u]WinNT 修改注冊表子鍵的權限 [/u][/color]

  [php]

  #include "stdafx.h"

  #include

  #include

  #include

  #include

  #pragma comment (lib,"Advapi32.lib")

  void main(int argc, char* argv[])

  {

   //開始重新配置使用注冊表的權限------------------------------------------------

   LPTSTR lpObjectName;

   SE_OBJECT_TYPE ObjectType; //#include

   PACL OldDACL,NewDACL;

   PSECURITY_DESCRIPTOR SD;

   EXPLICIT_ACCESS ea;

   lpObjectName = "MACHINE\\SYSTEM\\CurrentControlSet\\Enum\\Usb\\Vid_0E0F&Pid_0001";

   ObjectType =SE_REGISTRY_KEY;

   //建立一個空的ACL;

   if (SetEntriesInAcl(0, NULL, NULL, &OldDACL)!=ERROR_SUCCESS)

   return;

   if (SetEntriesInAcl(0, NULL, NULL, &NewDACL)!=ERROR_SUCCESS)

   return;

   //獲取現有的ACL列表到OldDACL

   if(GetNamedSecurityInfo(lpObjectName, ObjectType,

   DACL_SECURITY_INFORMATION,

   NULL, NULL,

   &OldDACL,

   NULL, &SD) != ERROR_SUCCESS)

   //Application->MessageBox("指定的鍵不存在!","提示",MB_OK);

   printf("指定的鍵不存在!");

   //設置用戶名"Everyone"對指定的鍵有所有操作權到結構ea

   ZeroMemory(&ea, sizeof(EXPLICIT_ACCESS));

   BuildExplicitAccessWithName(&ea,

   "Everyone", // name of trustee

   GENERIC_ALL, // type of access

   SET_ACCESS, // access mode

   SUB_CONTAINERS_AND_OBJECTS_INHERIT); //讓自健繼承他的權限; inheritance mode

  

   //合并結構ea和OldDACL的權限列表到新的NewDACL

   if(SetEntriesInAcl(1, &ea, NULL, &NewDACL) != ERROR_SUCCESS)

   goto Cleanup;

   //把新的ACL寫入到指定的鍵

   SetNamedSecurityInfo(lpObjectName, ObjectType,

   DACL_SECURITY_INFORMATION,

   NULL, NULL,

   NewDACL, NULL);

   ///////開始操作注冊表//////////////////////////////////////////////////////////

   //...................................................

   ////////////////////////////////////////////////////////////////////////////

   //恢復注冊表的權限;

   BuildExplicitAccessWithName(&ea,

   "Everyone", // name of trustee

   GENERIC_READ, // type of access

   SET_ACCESS, // access mode

   NO_INHERITANCE); //讓自健繼承他的權限; inheritance mode

   if(SetEntriesInAcl(1, &ea, NULL, &OldDACL) != ERROR_SUCCESS)

   goto Cleanup;

   //把舊的ACL寫入到指定的鍵

   SetNamedSecurityInfo(lpObjectName, ObjectType,

   DACL_SECURITY_INFORMATION,

   NULL, NULL,

   OldDACL,

   NULL);

   //釋放指針

   Cleanup:

   if(SD != NULL)

   LocalFree((HLOCAL) SD);

   if(NewDACL != NULL)

   LocalFree((HLOCAL) NewDACL);

   if(OldDACL != NULL)

   LocalFree((HLOCAL) OldDACL);

  }

  [/php]

  ----------------------------------------------------------------------

  Gandalf ([email]ganstein@gmail.com[/email])

上一篇:迅雷簡單刷流量方法 下一篇:

文章評論

軟件按字母排列: A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
免费体验120秒视频_榴莲榴莲榴莲榴莲官网_2021国产麻豆剧果冻传媒入口_一二三四视频社区在线
主站蜘蛛池模板: 又粗又大又硬又爽的免费视频| 成人精品一区久久久久| 日韩欧美亚洲国产精品字幕久久久| 国产国语对白露脸| 国产毛片一级国语版| 国产特级毛片aaaaaaa高清| 免费大片黄国产在线观看| 亚洲av成人精品网站在线播放| 国产精品第2页| 性调教室高h学校小说| poverty中国老妇人| 24小时日本电影免费看| 色老太bbw| 国产欧美在线观看精品一区二区| 深夜福利影院| 久久午夜宫电影网| 中文国产成人精品久久一区| 色135综合网| 国产精品午夜无码体验区| 亚洲男人天堂影院| 免费国内精品久久久久影院| 国产白嫩美女在线观看| 欧美色欧美亚洲高清在线视频| 国产精品亚洲а∨无码播放麻豆| 国产卡一卡二卡乱码三卡| 成人国产精品视频| 女人张开腿让男人桶个爽| 国产欧美亚洲精品第一页久久肉| 美女的尿口视频网站| 亚洲免费在线| 永久免费毛片在线播放| 日韩精品极品视频在线观看免费 | 久久精品日日躁夜夜躁欧美| 国产乱码一区二区三区| 日韩人妻无码一区二区三区99 | 一区二区在线视频免费观看| 色噜噜狠狠一区二区三区果冻 | 伊人色综合网一区二区三区| 欧美日韩动态图| 久久精品资源站| 欧美高清在线精品一区|