演習 4 - USB デバイスの問題を特定する
USB ホスト コントローラーは、接続されているすべてのデバイスが低電力状態になった後にのみ、電源を切ることができます。 つまり、画面がオフになっている間に SoC が DRIPS に入ることができるように、USB デバイスでは、モダン スタンバイ デバイスでのセレクティブ サスペンドをサポートする必要があります。
パート 1: SleepStudy レポートを使用して問題を特定する
こちらから事前に生成された sleepstudy-report_2.html レポートをダウンロードします。
お好みのブラウザーで sleepstudy-report_2.html を開きます。
- スタンバイ中に、システムは、わずか 120 mW しか使用できないことに注意してください (例: スタンバイ セッション 6 を参照)。
セッション 10 をクリックします。 11 分間で 2.83 ワットの電力を消費し、DRIPS % は 0 となりました。
上位の原因のテーブルを確認します。
USB ホスト コントローラー (_SB.PCI0.XHC) は、セッション期間の 99% はアクティブです。
XHC は、USB 3.0 ホスト コントローラーです。
モダン スタンバイで USB バス コントローラーが一度に数分間アクティブになっている場合、通常は、バスに接続された 1 つの USB デバイスがセレクティブ サスペンドになっていないことを意味します。これは、セレクティブ サスペンドがサポートされていないことが原因である可能性があります。 次の論理的な手順では、ETL トレースを参照して、どの USB デバイスが D0 に保持されているかを判断します。
セレクティブ サスペンドの詳細については、MSDN の「USB セレクティブ サスペンド」を参照してください。
パート 2: ETL トレースを使用した問題の特定
USB をさらに調査するために、SleepStudy が生成されたのと同じシステムで ETL トレースがキャプチャされました。
USB の問題を調査するには、Dstate グラフとテーブルを使用します。
こちらから事前に生成された USBProblem.etl トレースをダウンロードします。
WPA を使用して、事前に生成された USBProblem.etl を開きます。
[分析] タブの [DRIPS] グラフをドラッグ アンド ドロップします。
[DRIPS 以外の理由] を確認し、USB xHCI ホスト コントローラーをデバイスとして検出して、システムが DRIPS に入らないようにします。
デバイスがトレースの 98% でアクティブであることがわかります ([% Reason Time] 列に示されているように)。
USB xHCI ホスト コントローラーがアクティブになっている領域を拡大します。
テーブル内のデバイスを選択します。
グラフの薄い青色の空間を右クリックし、[ズーム] を選択します。
[% Reason Time] が 100% になります。
グラフ エクスプローラーの[電源] カテゴリで[デバイスの D 状態] グラフを見つけます。
[分析] タブに [デバイスの D 状態] グラフをドラッグ アンド ドロップします。
[デバイスの D 状態] グラフには、時間の経過に伴うデバイスの有効な D 状態が表示されます。 このデータを使用すると、システムがモダン スタンバイ状態のときに特定のデバイスが適切な D 状態になるかどうかを判断できます。
PoFx 型: Windows の電源管理フレームワークによって管理されるデバイスに使用されます。
非 PoFx 型: USB 接続デバイスに使用されます。
[D 状態] 列を [型] 列の右横に移動します。 ビューポートは次のようになります。
[非-PoFX] カテゴリを展開します。
[D 状態] 行を 0x0 の値 ([D0 状態]、または [アクティブ]) で展開します。
[名前] 列で並べ替え、USB デバイスを検索します。
D 状態のテーブルのデータは、システムがスタンバイ状態のときに、USB 複合デバイスが常に D0 の状態であったことを示しています。 複合デバイスのハードウェア ID は、USB\VID_0BB4&PID_0BA1\00000015B42EE80F0000000000000000 です。 このデバイスは、XHCI コントローラーの電源が切断されるのを防いでいました。
デバイスが Microsoft で作成したドライバーによって管理されている場合は、Microsoft に問題を報告してください。 それ以外の場合は、この情報をドライバーを所有するハードウェア ベンダーに報告し、ソリューションを見つけ、デバイスがセレクティブ サスペンドになることを確認する必要があります。