高度な検索
Developer Connection
Member Login ログイン | ご入会 ADC連絡先

Technical Q&A QA1002
FWSendSoftwareInterrupt vs. SendSoftwareInterrupt


Q:SendSoftwareInterruptFWSendSoftwareInterrupt の違いは何ですか?

A:DriverServicesLibSendSoftwareInterrupt は、実際には、対応する割り込みハンドラをすぐに呼び出す以外は何もしません。

FWSendSoftwareInterrupt の動作は、WaitNextEvent に対するパッチに依存しています。通常、FWSendSoftwareInterrupt を呼び出すと、FWCreateSoftwareInterrupt を使ってインストールされたハンドラが、次に WaitNextEvent が呼び出されたときに実行されます。FWCreateSoftwareInterrupt を呼び出すとき、パラメータの 1 つは TaskID です。FWSendSoftwareInterrupt は、ソフトウェアの割り込みの TaskID と、Process Manager による現在のプロセスの TaskID が一致することを確認しようとします。呼び出されたときに、現在のプロセスが何であるかを問題にしないならば(ドライバの場合に一般的です)、FWCreateSoftwareInterrupt を呼び出すとき、FWCurrentTaskID の代わりに kInvalidID を渡します。こうすることによって、ソフトウェアの割り込みは、FWSendSoftwareInterrupt の呼び出し後、次に WaitNextEvent が呼び出されたときに呼び出されます。


[2002 年 2 月 13 日]