トレーニング
モジュール
Troubleshoot device driver failures - Training
This module focuses on the role of device drivers and troubleshooting problems that pertain to them.
このブラウザーはサポートされなくなりました。
Microsoft Edge にアップグレードすると、最新の機能、セキュリティ更新プログラム、およびテクニカル サポートを利用できます。
Windows on Windows (WOW64) を使用すると、Microsoft Win32 ユーザー モード アプリケーションを 64 ビット Windows で実行できます。 これを行うには、Win32 関数呼び出しをインターセプトし、64 ビット カーネルに移行する前に、必要に応じて 32 ビット ポインター型から 64 ビット ポインター型にパラメーターを変換します。 サンキングと呼ばれるこの変換は、すべての Win32 関数に対して自動的に実行されます。主な例外の 1 つは DeviceIoControl に渡されるデータ バッファーです。 InputBuffer パラメーターと OutputBuffer パラメーターが指すこれらのバッファーの内容は、ドライバー固有の構造であるため、サンクされません。
注: バッファーの内容はサンクされませんが、バッファー ポインターは 64 ビット ポインターに変換されます。
ユーザー モード アプリケーションは、指定されたカーネル モード ドライバーに直接 I/O 要求を送信する DeviceIoControl を呼び出します。 この要求には、入出力制御コード (IOCTL) またはファイル・システム制御コード (FSCTL) と、入出力データ・バッファーへのポインターが含まれます。 これらのデータ バッファーの形式は、IOCTL または FSCTL に固有であり、カーネル モード ドライバーによって定義されます。 バッファー形式は任意であり、WOW64 ではなくドライバーに知られているため、データをサンクするタスクはドライバーに任されます。
次のすべてが当てはまる場合、64 ビット ドライバーは 32 ビット I/O をサポートする必要があります。
ドライバーは、ユーザー モード アプリケーションに IOCTL (または FSCTL) を公開します。
IOCTL で使用される I/O バッファーの少なくとも 1 つに、ポインター精度データ型が含まれています。
IOCTL コードを簡単に書き直して、ポインター精度バッファーのデータ型を使用できないようにすることはできません。
トレーニング
モジュール
Troubleshoot device driver failures - Training
This module focuses on the role of device drivers and troubleshooting problems that pertain to them.