次の方法で共有


ドライバーの x64 に関する制限

x64 ベースのシステムでは、カーネル コードと特定のカーネル データ構造が変更から保護されます。 ドライバーがこのようなコードまたはデータの変更を試行すると、システムでバグ チェック (CRITICAL_STRUCTURE_CORRUPTION バグ チェック) が発生します。

x64 ベースのシステムのドライバーは、このバグのチェックをトリガーする可能性のある操作を回避する必要があります。 特に、ドライバーは以下を行ってはいけません。

  • 実行時にカーネル コードの変更を試みます。

  • 独自のスタックを実装して使用します。

  • 割り込みディスパッチ テーブル (IDT) やグローバル記述子テーブル (GDT) などのハードウェア ディスパッチ テーブルを変更します。

  • 文書化されていないカーネル データ構造を修正します。

上記の操作では、x86 ベースまたは Itanium ベースのシステムでバグ チェックがトリガーされることはありませんが、ドライバーがプラットフォームでこのような操作を実行してはなりません。 これらの操作は、今後のバージョンの Microsoft Windows オペレーティング システムでは機能しない可能性があります。

64 ビット コンパイラを使用したプログラミングの一般的な情報については、Visual C++ を使用した 64 ビット プログラミングに関する記事を参照してください。