しかし、この考えはすでに実験者の脆弱な心を傷つけました。 オペレーティングシステムが起動する前の起動段階(UEFIシェルなど)で、接続されたデバイスのUSB 3.0の可用性を確認したいという要望がありました。 最初に、小さなユーティリティCheckUSBが作成されました(ただし、これは、これまでのところ、Intelチップセットの第8バージョンの一部の実装でのみ動作するように設計されています)。
図1 。 ASUS T300LAラップトップでCheckUSBユーティリティを使用した実験
モバイルプラットフォームに近づくと、場合によっては、再起動時にラップトップのUEFIファームウェアがUSBサブシステムを完全に初期化せず、オペレーティングシステムの一部が動作しないことが判明しました。
図2 。 ASUS T300LAラップトップのUEFIファームウェア設定のXHCI Pre-Boot Modeオプション
たとえば、xHCI Pre-Boot Modeオプションの初期状態がCMOSセットアップで無効に設定されている場合、Smart Autoに置き換え、オペレーティングシステムをロードせずにCheckUSBユーティリティを実行すると、xHCIコントローラーに接続されているデバイスのリストが空であることがわかります。 これは、EHCIコントローラーが接続されたUSBデバイスのサービスに使用されることを意味します。
図3 。 Windowsが起動する前にUSBデバイスをASUS N750JKラップトップの拡張ホストコントローラーインターフェイスに接続する
そのため、Windowsを起動せずにUEFIへのブートをオンに切り替えた直後に、次の結果が得られます。
- USB 2.0ポートルーティング= 0、EHCIに接続された14個のUSB2接続
- USB 3.0ポートSuperSpeed Enable = 0、4 USB3接続が無効
同時に、マスク値は、オペレーティングシステムがxHCIサービスへの接続を切り替える権利を持っていることを示します。
- USB 2.0ポートルーティングマスク= 00003FFFh
- USB 3.0ポートルーティングマスク= 0000000Fh
xHCIレジスタのみを表示し、RMHを使用してデバイスがEHCIサービスに切り替えられるため、デバイスのリストは空です。 ビットフィールドの説明は、記事「診断ユーティリティCheckUSB」[2]、[3]に記載されています。
オペレーティングシステムの再起動後に再起動すると、すべてのデバイスがxHCIコントローラーに正しく接続されます。
図4 。 Windows後の起動時にUSBデバイスをASUS N750JKラップトップのeXtensible Host Controller Interfaceに接続する
ポートアクセス制御ロジックは、再起動前に発生した状態を「記憶」します。
- USB 2.0ポートルーティング= 03FFFh、xHCI USB2サブシステムに接続された14個のUSB2接続
- USB 3.0ポートSuperSpeed Enable = 0Fh、4 USB3接続でSuperSpeedモードを使用可能
検討中のASUS N750JKプラットフォームの外部USB3ポートの数は4であることを思い出してください。