はじめに
「御社のGR-USB/DEVICEを使った場合、Windows11のコア分離に対応していますか?」
との問い合わせを受け、少し調査してみました。
コア分離は、Windows のコア プロセスをメモリ内で分離することで、悪意のあるソフトウェアから保護するように設計されたセキュリティ機能を提供します。 これは、コア プロセスを仮想化環境内で実行することにより実現されています。
Microsoftサポート、Windows セキュリティ アプリのデバイス セキュリティ
コア分離はWindowsの機能なので詳細やどんな機能なのかはまだまだ勉強中ですが、とりあえず動作確認を行ってみましたので、それについて書いていきます。
動作確認
コア分離に設定したWindows11 PCとGR-USB/DEVICEで動作確認を行ってみることにします。
環境構成
組込み側の環境は以下の通りです。
# | 項目 | 名称 |
---|---|---|
1 | 評価ボード | STM32F779I-EVAL |
2 | 統合開発環境 | EWARM 9.20.2 |
3 | USBファンクションドライバ | GR-USB/DEVICE for STM32F7xx(OTG_HS) |
GR-USB/DEVICE Communication Function Driver |
USBのクラスは分かりやすそうなCDC(Communications Device Class)を選択しました。組込みアプリケーションは、PCから送られてきた電文をコールバックするものです。
PC側のアプリケーションはTeratermを使用しました。
PC側の状態
最初にPC側の現在の設定を確認してみました。(コア分離設定になっていないと意味がないので…)
Windows11の「設定」を開いて検索ボックスに「コア分離」と入力します。
検索結果に出てくるのでクリックするとコア分離の表示が出ます。

「メモリ整合性」はON、「カーネルモード ハードウェア強制スタック保護」はOFFでした。
どちらも、仮想化セキュリティの様なのですが、この状態で動作するか確認してみます。
デバイスの接続&動作
GR-USB/DEVICEを書き込んだ評価ボードをPCに接続すると、無事に仮想COMポートとして認識してくれました。

この状態でTeratermを起動して通信を行ってみるのですが、Teratermにはローカルエコーという機能があります。文字通りローカルにエコーする機能なので、これをOFFにしておかないとキーボードから入力した電文が表示されてしまいます。なので、Teratermの設定を確認します。

ローカルエコーはOFFでしたので、この状態でキーボードから文字を打ち、評価ボードに送ってみます。

キーボードから「ABCDEFG」を打ち込むと同じ内容がエコーバックされました。
どうやら正常に動作しているようです。
ローカルエコーをONにして試してみます。

同じようにキーボードから「ABCDEFG」を打ち込むと、ローカルエコーとエコーバックが表示されました。

まとめ
弊社のGR-USB/DEVICEの場合、COMファンクションやマスストレージファンクションのWindows側のドライバはWindowsの標準ドライバ(Windowsに標準搭載されている、デバイスを接続するだけで自動的にインストールされて動作可能になるドライバを指しています)を使用します。Windowsの標準ドライバがコア分離に対応していれば、問題ないと思われます。
考えてみれば、コア分離機能はWindowsの機能なので、Windowsのドライバなどが対象になるかと思います。なので、Windows標準ドライバが対応していれば、評価ボード側は特に何かする必要はないと思われます。(もちろん、専用のWindowsドライバが必要なデバイスの場合は注意が必要と思います。)
今回は「メモリ整合性」のみONにして試してみましたが、「カーネルモード ハードウェア強制スタック保護」もWindows内の機能なので特に問題は無いかな、と考えています。
「カーネルモード ハードウェア強制スタック保護」も時間が出来たら試してみます。