cardReg.Card.Item[i].I.Mem.dwUserDirectAddr - ユーザー マニュアルの WD_CardRegister() を参照してください]。 I/O アドレスにアクセスする場合、WD_Transfer() の複数回の呼び出しを WD_MultiTransfer() を1回呼び出すように置き換えて、文字列転送を使用することによって、ドライバのパフォーマンスを向上します。 [このことは、メモリ アクセスにも当てはまりますが、直接メモリにアクセスする方が早いです]。 ドライバのパフォーマンスをより向上させるには、WinDriver の Kernel PlugIn 機能を使用して、ドライバの全体的なパフォーマンスを向上することによって、ユーザー モードからカーネルへコードのクリティカルな部分のパフォーマンスを向上します。たとえば、この機能で、カーネルで直接割り込みを処理できます。Kernel PlugIn の詳細はユーザー マニュアルを参照してください。Kernel PlugIn は、VxWorks および Windows CE には対応していません。これらの OS は、ユーザー モードとカーネルの区別がありません。VxWorks の場合、windrvr_isr call-back 関数を使用して、割り込み処理速度を向上できます。 USB の場合 ======= データ転送率を向上させるには、複数のデータ転送 (小さなデータ バッファを使用) を1回のデータ転送 (大きなデータ転送を使用) に置き換えてください。これによって、関数の呼び出しの重複が避けられ、ユーザーとカーネル モード間のコンテキストの切り替えを減少できます。 [データ バッファのサイズを WDU_Transfer() 関数の dwBufferSize 引数に設定します]。 メモ: WDU_Transfer() への呼び出しで使用するバッファのサイズは、デバイスの最大パケット サイズに制限されていませんが、最大パケット サイズの倍数のバッファ サイズを使用することを推奨します。 デバイスのファームウェアを編集することによって、転送率を向上することもできます (たとえば、ハードウェアの最大パケット サイズを大きくすることによって)。