一般 I/O ターゲットへの I/O 要求の送信

ドライバーは、同期的または非同期的に一般 I/O ターゲットに I/O 要求を送信できます。

ドライバーが I/O 要求を同期的に送信する場合、ドライバー スレッドは要求を一度に 1 つずつ送信します。 スレッドは、要求が完了するまで待機してから、次の要求を送信します。 このプロセスは、I/O 要求を非同期的に送信するよりも簡単です。 ドライバーは、多数の要求を送信しない場合や、ドライバーが各 I/O 要求を待機している間にシステムまたはデバイスのパフォーマンスが低下しない場合には、I/O 要求を同期的に送信できます。

ドライバーが I/O 要求を非同期的に送信する場合、ドライバー スレッドは、以前に送信された要求が完了するのを待たずに、要求を送信する準備ができたらすぐに各要求を送信します。 ドライバーが短時間で多くの I/O 要求を処理する必要がある場合は、次の要求を送信する前に、各要求が完了するまでドライバーが待機することを許可できない場合があります。 そうしないと、データを失ったり、ドライバーのデバイスのパフォーマンスが低下したりする可能性があります (場合によってはシステム全体)。

フレームワークの I/O ターゲット オブジェクトは、ドライバーが呼び出すことができるメソッドの 2 つのセットを提供します。1 つは I/O 要求を同期的に送信するセットで、もう 1 つは I/O 要求を非同期に送信するセットです。

これらのメソッドごとに、要求オブジェクトとバッファー領域を指定する必要があります。 これらのメソッドを使用すると、ドライバーが I/O キューのいずれかで受信した要求を転送したり、新しい要求を作成して送信したりすることができます。