web-dev-qa-db-ja.com

新しいUSBデバイスを接続したときのCPU使用率100%-services.exe / Windows Server 2003

私のサーバーに新しいUSBドライブをインストールしようとしていますが、発生するのは、システムがservices.exeで大量のプロセッササイクルを使用し始めることだけです。 Process Explorerで詳しく調べると、services.exeプロセッサ時間のほとんどを使用するumpnpmgr.dllというスレッドがあります。

30分放置しても何も起こらなかった。

再起動して再試行しましたが、同じ結果になりました。

別のUSBドライブ、次にフラッシュドライブを試しましたが、それでも同じ問題です。

ドライバの更新を試みましたが、更新機能がすでに動作していると表示されました。

プロセスエクスプローラーを使用してスレッドを強制終了し、サーバーが目的の機能を実行できるようにしました。

これが発生する前に以前にインストールされたデバイスは引き続き機能しますが、システムに新しいデバイスは機能しません。

私の質問は次のとおりです。

デバイスをレジストリに手動でインストールして、Windowsが以前にインストールされたデバイスであると見なす方法はありますか?

または、この問題は再インストール以外の方法で修復できますか?再インストールを行うということは、大量のデータをバックアップすることを意味します。これは、USBドライブでは困難であり、他のすべてのネットワークマシンのスペースが不十分です。

どんな助けでも大歓迎です。

ウィリアム

4
Will3265

Update:Windows 7 Service Pack 1には修正プログラムが含まれています:

KB981214:USB 2.0 EHCIホストコントローラーに接続されたUSBオーディオデバイスを使用するとCPU使用率が高くなります

このシナリオでは、コンピューターのCPU使用率が約15秒ごとに高いことがわかります。さらに、全体的なCPU使用率が100%に達すると、オーディオデバイスからのオーディオ再生がスキップされる場合があります。

SP1で問題が解決するかどうかを確認してください。


Process Explorer を使用して、実行中のスレッドを確認し、そのスタックトレースを確認します。少なくとも、services.exe内でホストされているサービスを確認できます。

alt text

この間、マシンはCPUバウンドであり、IOバウンドではない。I/ Oバウンドの場合は、 プロセスモニター -を使用して何をしているのかを確認できます。それはいくつかの洞察につながるかもしれません。


process Explorerのスクリーンショットで、プロセスがCPUの50%を使用していることがわかります。私はそれがデュアルコアマシンであり、1つのコア全体を使用していると思います。そのため、CPUは何かを実行してスタックしています。

スタックトレースを見る:

alt text

iキーを押すもの(私は専門家ではないので、彼らは私の興味をそそっただけです):

  • VerifyCatalogFile
  • セットアップFindNextMatchLineW
  • SetupDiEnumDeviceInterfaces

「カタログファイル」という用語から、インストールされているすべてのINFを通過しているように聞こえます。これらの関数が何をするのかわかりませんが、確認できます。

VerifyCatalogFile

単一のカタログファイルを検証します。

SetupFindNextMatchLine

SetupFindNextMatchLine関数は、指定されたキーに一致するContextIn.Lineを基準にして、INFファイル内の次の行の位置を返します。

SetupDiEnumDeviceInterfaces

SetupDiEnumDeviceInterfaces関数は、デバイス情報セットに含まれているデバイスインターフェイスを列挙します。

つまり、すべての[〜#〜] inf [〜#〜]ファイル、pokingを通過しているように聞こえます。 /それぞれを介して、次に何かをするそれが見つけたものに基づいて。

次の質問は、それがoneINFファイルにスタックしているのか、それともロット、またはrepeating自体であるか、アクセスできないか、または...誰が知っているか。

次に行うことは、ロードすることです プロセスモニターfileアクティビティのみをで表示するように設定します/services.exe。次に、すべてのinfファイルをズームするのを確認できます。うまくいけば、それがスタックしているものを見ることができます(うまくいけば、is単にスタックしている)。次に、問題のあるINFファイルの名前を変更/非表示にすることができます。


アップデート2

プロセスモニター入門書。

ツールバーで、ファイルシステムアクティビティ以外のオプションをオフにします。

alt text

次に、フィルターを追加します。

Process Name
is
services.exe
Include

[追加]をクリックします。

alt text

5
Ian Boyd

USBポーリングアイドルが有効になっているかどうかを確認します。詳細については、 http://www.pctools.com/guides/registry/detail/1210/ を参照してください。また、HIDユーザー入力サービスが必要ない場合([スタート]-> [実行]-> [services.msc]からサービスを参照)、無効にすることをお勧めします。

1
Breakthrough

これはAutoRunが邪魔になるのでしょうか?試してください 無効にする 、または shift デバイスが最初に接続されている間。

0
dlamblin

いくつかのアイデア:

  1. Windowsがロールバックドライバーの実行に同意するかどうか、デバイスマネージャーのUSBデバイスのプロパティを確認します。
  2. デバイスマネージャからUSBデバイスを削除して再起動してみてください(最初にシステムバックアップを実行することをお勧めします)。
  3. USBコントローラーを無効にして、ドライバーの更新が停止するかどうかも確認してください。
  4. USBデバイスを取り出して再起動しようとしましたか?新しいデバイスが壊れている可能性があります。別のコンピューターとW2K3よりも新しいOSで試してみてください。
0
harrymc

問題の解決策ではありませんが、障害のあるハードウェアを除外するには、USBフラッシュドライブを接続し、CDからLinuxディストリビューションを起動して、USBフラッシュドライブが検出され、正常に動作しているかどうかを確認します。

0
Molly7244

最初にドライブをインストールしてからシステムに接続し、ウイルス対策またはファイアウォールを閉じてからドライバをインストールしてからデバイスを接続する必要がある場合があります。また、作業を改善するためにセーフモードでインストールする必要がある場合もあります。しかし、私のアドバイスは、最初にデバイスを接続せず、その後にドライバーをインストールすることです。

0
Am1rr3zA