私はいくつかのプロジェクト固有のハードウェアデバイスのインストールを含むアプリケーションを開発しています。アプリケーションのインストール時には、difxAPIを使用してドライバのinfファイルをDriverstoreにプッシュします。しかし、difxを使用していない場合は、HKLM \ SYSTEM \ CurrentControlSet \ Enum \ USBのWindowsレジストリにまだいくつかの参照が残っています。デバイスが列挙され、デバイスマネージャのCOMポートセクションにそのエントリが表示されるため、これらの参照の存在が問題になりがちです。これは私がドライバーをアンインストールするために使用するものである:Windows XPでのドライバファイルの完全削除
DriverPackageUninstall(infName, DRIVER_PACKAGE_DELETE_FILES, ptrInstallerInfo, out fNeedReboot);
再び私は私が特定のキーにアクセスするためのアクセス許可を設定する必要があります理解するために、プログラムでこれらのレジストリエントリをクリアすると考えます。これは私がやったことです:
RegistryAccessRule regAccess = new RegistryAccessRule("Everyone", RegistryRights.FullControl, AccessControlType.Allow);
RegistrySecurity regSecurity = new RegistrySecurity();
regSecurity.AddAccessRule(regAccess);
Registry.LocalMachine.OpenSubKey(@"SYSTEM\CurrentControlSet\Enum\USB\", true).SetAccessControl(regSecurity);
しかし、私がプログラム的にアクセス制御を設定することができますされていないように、コードのこの作品は、例外をスローしています。 Windows XPマシンでは、手動でレジストリエディタからこの権限を設定できます。私はドライバファイルを完全に削除することができるXPの効率的な方法はありますか?