变态重口极致另类在线-波多久久夜色精品国产-波多野结衣在线观看一区-波多野结衣在线观看一区二区-污污的网站免费阅读-污污视频网址

當(dāng)前位置: 首頁(yè)IT技術(shù) → USB 驅(qū)動(dòng)自動(dòng)卸載方法

USB 驅(qū)動(dòng)自動(dòng)卸載方法

更多

  最近在作一個(gè)項(xiàng)目,有驅(qū),要求 USB 驅(qū)動(dòng)自動(dòng)安裝、卸載。這里,就卸載部分提供一些

  線索,供大家賞析。 ;)

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

  Win98 為代表的 Win9x 說(shuō)起。

  [color=royalblue][u]Win9x 系統(tǒng)上的卸載 [/u][/color]

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

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

  [color=royalblue][u]WinNT 系統(tǒng)上的卸載 [/u][/color]

   相對(duì)來(lái)說(shuō), WinNT 系統(tǒng)上的刪除要復(fù)雜些,特別是權(quán)限的原因:

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

   2). 刪除注冊(cè)表中的

  [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 下的各個(gè)子鍵,并且獲取其中的 MatchingDeviceId 看是否為

   我們的驅(qū)動(dòng)的 Hardware_ID, 然后獲取 InfPath 的值,并去 %Windir%\Inf 下刪除之;

   b). 需要一個(gè)權(quán)限的修改。代碼可以參見(jiàn)后面。

   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 修改注冊(cè)表子鍵的權(quán)限 [/u][/color]

  [php]

  #include "stdafx.h"

  #include

  #include

  #include

  #include

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

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

  {

   //開(kāi)始重新配置使用注冊(cè)表的權(quán)限------------------------------------------------

   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;

   //建立一個(gè)空的ACL;

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

   return;

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

   return;

   //獲取現(xiàn)有的ACL列表到OldDACL

   if(GetNamedSecurityInfo(lpObjectName, ObjectType,

   DACL_SECURITY_INFORMATION,

   NULL, NULL,

   &OldDACL,

   NULL, &SD) != ERROR_SUCCESS)

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

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

   //設(shè)置用戶名"Everyone"對(duì)指定的鍵有所有操作權(quán)到結(jié)構(gòu)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); //讓自健繼承他的權(quán)限; inheritance mode

  

   //合并結(jié)構(gòu)ea和OldDACL的權(quán)限列表到新的NewDACL

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

   goto Cleanup;

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

   SetNamedSecurityInfo(lpObjectName, ObjectType,

   DACL_SECURITY_INFORMATION,

   NULL, NULL,

   NewDACL, NULL);

   ///////開(kāi)始操作注冊(cè)表//////////////////////////////////////////////////////////

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

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

   //恢復(fù)注冊(cè)表的權(quán)限;

   BuildExplicitAccessWithName(&ea,

   "Everyone", // name of trustee

   GENERIC_READ, // type of access

   SET_ACCESS, // access mode

   NO_INHERITANCE); //讓自健繼承他的權(quán)限; 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])

更多精彩內(nèi)容請(qǐng)點(diǎn)擊

強(qiáng)力卸載軟件

專題
熱門評(píng)論
最新評(píng)論
發(fā)表評(píng)論 查看所有評(píng)論(0)
昵稱:
表情: 高興 可 汗 我不要 害羞 好 下下下 送花 屎 親親
字?jǐn)?shù): 0/500 (您的評(píng)論需要經(jīng)過(guò)審核才能顯示)
主站蜘蛛池模板: 女厕所vedioxxxx | 天天摸天天操天天爽 | 中文字幕一二区 | 亚洲成人免费网站 | 日韩在线播放视频 | 亚洲天堂色视频 | 国产综合激情在线亚洲第一页 | 亚洲精品第一页 | 国产成人精品s8p视频 | 18pao国产成视频永久免费 | 国产免费一级精品视频 | 青青操国产 | 在线一区视频 | 日韩免费伦理片 | 日韩精品首页 | 高h猛烈做哭bl壮汉受小说 | 国产一区二区三区高清视频 | a级精品国产片在线观看 | 中国国产一级毛片 | 欧美乱性视频 | 国产精品果贷一区二区借贷宝 | 国产成人亚洲精品影院 | 国产成人福利 | 狼久久| 国产在线一区二区三区在线 | 日日夜人人澡人人澡人人看免 | 丝袜视频在线 | 最近播放的好看hd | 香蕉视频老司机 | 中文字幕欧美视频 | 乱人伦视频69 | 丝袜免费网站 | 韩国一区 | 国产99视频精品免费观看7 | 成年男女免费大片在线观看 | 一二三区乱码一区二区三区码 | 国产日韩亚洲欧洲一区二区三区 | 久草亚洲视频 | 额去鲁97在线观看视频 | 免费观看欧美一级特黄 | 成年免费大片黄在线观看com |