フレームワーク要求オブジェクトの再利用
パフォーマンスを向上させるため、I/O ターゲットにほぼ同じ非同期要求を多数作成して送信するフレームワーク ベースのドライバーは、要求ごとに新しい要求オブジェクトを作成するのではなく、要求オブジェクトを再利用することができます。 ドライバーは、要求が完了した後、要求オブジェクトを再利用できます。
ドライバーが WdfRequestCreate または WdfRequestCreateFromIrp を呼び出して要求オブジェクトを作成した場合、WdfRequestReuse を呼び出すことによって要求を再利用できます。 ドライバーは、I/O キュー内のフレームワークから受信した要求オブジェクトを再利用することもできますが、受信した要求オブジェクトに含まれる IRP を変更することはできません。
WdfRequestReuse で説明されている戻り値が失敗する状況を注意して避けるようにするなら、ドライバーは CompletionRoutine コールバック関数内から WdfRequestReuse を呼び出すことができます。 (CompletionRoutine コールバック関数には VOID 戻り値があるため、エラーを報告できません)
ドライバーが再利用する要求オブジェクトの CompletionRoutine コールバック関数を提供する場合、ドライバーは WdfRequestReuse を呼び出した後に WdfRequestSetCompletionRoutine を呼び出す必要があります。