無効にされた USB デバイスまたは [ハードウェアの安全な取り外し] アイコンをクリックした USB デバイスに対して USB ポートがアクティブのままになる

文書翻訳 文書翻訳
文書番号: 2401954 - 対象製品
すべて展開する | すべて折りたたむ

現象

Windows Vista、Windows Server 2008、Windows 7、または Windows Server 2008 R2 を搭載しているコンピューターに USB デバイスを接続していて、デバイス マネージャーでそのデバイスを無効にするか、システム トレイ アイコンを使用してそのデバイスを安全に取り外した場合、以下のいずれかの現象が発生することがあります。
  • USB デバイスが、動作が継続していることを示す (点灯したままである LED など)。
  • USB デバイスが USB パケットの受信を続け、アクティブなデバイス状態に対応する電力を消費し続ける。
  • 無効にされた USB デバイスまたは [ハードウェアの安全な取り外し] アイコンをクリックした USB デバイスを物理的に切断すると、場合によっては、別の USB デバイスへのアクティブな転送でエラーの原因になることがある。
これらの現象は、同じような条件下で Windows XP または Windows Server 2003 を搭載しているコンピューターでは見られません。

原因

USB デバイスが、デバイス マネージャーで無効にされるか、システム トレイ アイコンを使用して安全に取り外された場合、USB デバイスの "ソフトウェア上の取り外し" を実行するために、デバイスの削除要求 (PnP IRP IRP_MN_REMOVE_DEVICE) が発行されます。USB デバイスはプラグ アンド プレイを行うために "削除済み" としてマークされますが、デバイスはまだ物理的には切断されていません。

Windows XP および Windows Server 2003 では、USB デバイスが "削除済み" としてマークされた場合、そのデバイスの接続先である USB ハブ ポートは無効になります。ポートが無効である場合、そのデバイスにはそれ以上 USB トラフィックは送信されません。

Windows Vista、Windows Server 2008、Windows 7、および Windows Server 2008 R2 では、USB デバイスが "削除済み" としてマークされた場合、そのデバイスの接続先である USB ハブ ポートは無効になりません。USB デバイスが "削除済み" としてマークされた後に、USB ハブ ポートが有効のままである場合、上記の現象が発生することがあります。

解決方法

この問題を回避するには、レジストリ値を設定して、Windows Vista、Windows Server 2008、Windows 7、および Windows Server 2008 R2 を、ソフトウェア上削除された USB デバイスの接続先である USB ハブ ポートを無効にするという Windows XP と Windows Server 2003 の動作に戻す方法があります。この回避策は、特定のデバイス (ベンダー ID、プロダクト ID、およびリビジョン) のすべてのインスタンスに関してデバイス単位で、または (列挙されたすべての USB デバイスに関して) グローバルに適用することができます。

重要: このセクション、方法、またはタスクには、レジストリの変更方法が記載されています。レジストリを誤って変更すると、深刻な問題が発生することがあります。レジストリを変更する際には十分に注意してください。万一に備えて、編集の前にレジストリをバックアップしてください。問題が発生した場合でも、レジストリを復元できます。レジストリのバックアップ方法および復元方法の詳細を参照するには、以下のサポート技術情報番号をクリックしてください。
322756 Windows でレジストリをバックアップおよび復元する方法

デバイス単位の設定

特定のデバイスに回避策を適用するには、値が 1 である "DisableOnSoftRemove" という名前の REG_DWORD 値を、以下のレジストリ サブキーに追加します。
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\usbflags\vvvvpppprrrr
(vvvv はデバイスのベンダー ID、pppp はデバイスのプロダクト ID、および rrrr はデバイスのリビジョン番号です)。
  1. [スタート] ボタンをクリックし、[ファイル名を指定して実行] をクリックします。次に、[名前] ボックスに「regedit」と入力し、[OK] をクリックします。
  2. レジストリで次のサブキーを見つけてクリックします。
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\UsbFlags
  3. [編集] メニューの [新規] をポイントし、[キー] をクリックします。
  4. 以下の形式で新しいキーの名前を入力します。
    vvvvpppprrrr
    vvvv は、ベンダーを識別する 4 桁の 16 進数です (USB デバイス記述子の idDevice)。
    pppp は、製品を識別する 4 桁の 16 進数です (USB デバイス記述子の idVendor)。
    rrrr は、デバイスのリビジョン番号が含まれる 4 桁の BCD (Binary-Coded Decimal) 番号です (USB デバイス記述子の bcdDevice)。
  5. [編集] メニューの [新規] をポイントし、[DWORD (32 ビット) 値] をクリックします。
  6. DWORD 値の名前として「DisableOnSoftRemove」と入力し、Enter キーを押します。
  7. [DisableOnSoftRemove] を右クリックし、[修正] をクリックします。
  8. [値のデータ] ボックスに「1」と入力し、[OK] をクリックします。
  9. レジストリ エディターを終了します。

グローバル設定

列挙されたすべての USB デバイスに対してグローバルに回避策を適用するには、値が 1 である "DisableOnSoftRemove" という名前の REG_DWORD 値を、以下のレジストリ サブキーに追加します。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\usbhub\HubG
  1. [スタート] ボタンをクリックし、[ファイル名を指定して実行] をクリックします。次に、[名前] ボックスに「regedit」と入力し、[OK] をクリックします。
  2. レジストリで次のサブキーを見つけてクリックします。
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\usbhub
  3. [編集] メニューの [新規] をポイントし、[キー] をクリックします。
  4. 新しいキーの名前として「HubG」と入力し、Enter キーを押します。
  5. [編集] メニューの [新規] をポイントし、[DWORD (32 ビット) 値] をクリックします。
  6. DWORD 値の名前として「DisableOnSoftRemove」と入力し、Enter キーを押します。
  7. [DisableOnSoftRemove] を右クリックし、[修正] をクリックします。
  8. [値のデータ] ボックスに「1」と入力し、[OK] をクリックします。
  9. レジストリ エディターを終了します。

詳細

ソフトウェア上の削除に対して USB ポートを無効にしない効果


ソフトウェア上の削除に対して USB ポートを無効にしない (Windows Vista、Windows Server 2008、Windows 7、および Windows Server 2008 R2 の既定の動作) 効果として判明しているものには、次の効果があります。
  • USB デバイスが USB パケットの受信を続け、アクティブなデバイス状態に対応する電力を消費し続ける。
  • USB デバイスが、動作が継続していることを示す (点灯したままである LED など)。
  • 無効にされた USB デバイスまたは [ハードウェアの安全な取り外し] アイコンをクリックした USB デバイスを物理的に切断すると、場合によっては、別の USB デバイスへのアクティブな転送でエラーの原因になることがある。

ソフトウェア上の削除に対して USB ポートを無効にする効果

(上記の回避策を適用した場合、および Windows XP/Server 2003 の既定の動作である) ソフトウェア上の削除に対して USB ポートを無効にする効果として、判明している特有の効果はありません。ただし、これは Windows Vista、Windows Server 2008、Windows 7、および Windows Server 2008 R2 の既定の動作ではないため、ソフトウェア上の削除に対して USB ポートを有効にしたままにする既定の動作と同程度には、この構成は完全にテストされていません。そのため、この回避策が USB デバイスの列挙と電源管理操作の安定性に影響する可能性があります。

USB デバイスをソフトウェア上で削除する効果

(上記の回避策の適用の有無に関係なく) USB デバイスをソフトウェア上で削除する効果として判明しているものには、次の効果があります。
  • Windows 7 および Windows Server 2008 R2 では、接続された USB デバイスがソフトウェア上削除されたが、物理的には切断されていない場合、デバイスの接続先である USB ハブ (ルート ハブを含む) は、USB サスペンド状態 (ハブそれ自体のセレクティブ サスペンド) にはなりません (USB ハブのサスペンドは、以前のバージョンの Windows ではサポートされていません)。
  • またこれにより、Windows Vista、Windows Server 2008、Windows 7、および Windows Server 2008 R2 上では USB ホスト コントローラーはグローバル サスペンド状態にもなりません。
  • ハブまたはグローバル サスペンドが使用されている場合に消費される電力と比較すると、ハブおよびグローバル サスペンドを防止すると、ソフトウェア上削除された USB デバイスがまだ接続されている間は電力消費量が上昇することがあります。
  • ソフトウェア上削除された USB デバイスが USB ハブ ポートから切断されると、ハブは USB サスペンド状態になり、USB ホスト コントローラーはグローバル サスペンド状態になることができます (これらの電源管理機能をサポートするバージョンの Windows で、これらの省電力状態になるための通常の条件も満たされていると仮定)。

USB デバイスをソフトウェア上削除する方法

以下の操作により、USB デバイスをソフトウェア上削除された状態にすることができます。
  • 通知領域の [ハードウェアの安全な取り外し] アイコンを使用して USB デバイスを安全に取り外す。
  • デバイス マネージャーで USB デバイスを無効にする。
  • SetupDiRemoveDevice API を使用してプログラムで USB デバイスを無効にする。

上記の操作の実行方法の詳細については、次の Web サイトを参照してください。

デバイスの管理 (Microsoft TechNet)
プラグ アンド プレイ デバイスを有効または無効にする (Microsoft TechNet)
SetupDiChangeState 関数 (Windows Driver Kit)

注意 : これは、マイクロソフトのサポート組織内で直接作成された "緊急公開" の資料です。 この資料には、確認中の問題に関する現状ベースの情報が記載されています。 情報提供のスピードを優先するため、資料には誤植が含まれる可能性があり、予告なしに随時改定される場合があります。 その他の考慮事項については、使用条件を参照してください。

プロパティ

文書番号: 2401954 - 最終更新日: 2011年5月15日 - リビジョン: 2.0
この資料は以下の製品について記述したものです。
  • Windows Vista Ultimate
  • Windows Vista Ultimate 64-bit edition
  • Windows Vista Enterprise
  • Windows Vista Enterprise 64-bit edition
  • Windows Vista Business
  • Windows Vista Business 64-bit edition
  • Windows Vista Home Premium
  • Windows Vista Home Premium 64-bit edition
  • Windows Vista Home Basic
  • Windows Vista Home Basic 64-bit edition
  • Windows Server 2008 Standard
  • Windows Server 2008 Enterprise
  • Windows Server 2008 Datacenter
  • Windows Server 2008 Service Pack 2
  • Windows 7 Ultimate
  • Windows 7 Enterprise
  • Windows 7 Professional
  • Windows 7 Home Premium
  • Windows 7 Home Basic
  • Windows Server 2008 R2 Standard
  • Windows Server 2008 R2 Enterprise
  • Windows Server 2008 R2 Datacenter
キーワード:?
KB2401954
"Microsoft Knowledge Baseに含まれている情報は、いかなる保証もない現状ベースで提供されるものです。Microsoft Corporation及びその関連会社は、市場性および特定の目的への適合性を含めて、明示的にも黙示的にも、一切の保証をいたしません。さらに、Microsoft Corporation及びその関連会社は、本文書に含まれている情報の使用及び使用結果につき、正確性、真実性等、いかなる表明・保証も行ないません。Microsoft Corporation、その関連会社及びこれらの権限ある代理人による口頭または書面による一切の情報提供またはアドバイスは、保証を意味するものではなく、かつ上記免責条項の範囲を狭めるものではありません。Microsoft Corporation、その関連会社 及びこれらの者の供給者は、直接的、間接的、偶発的、結果的損害、逸失利益、懲罰的損害、または特別損害を含む全ての損害に対して、状況のいかんを問わず一切責任を負いません。(Microsoft Corporation、その関連会社 またはこれらの者の供給者がかかる損害の発生可能性を了知している場合を含みます。) 結果的損害または偶発的損害に対する責任の免除または制限を認めていない地域においては、上記制限が適用されない場合があります。なお、本文書においては、文書の体裁上の都合により製品名の表記において商標登録表示、その他の商標表示を省略している場合がありますので、予めご了解ください。"

フィードバック

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com