AVStream でのイベント処理
AVStream フィルターとピンは、KSFILTER_DESCRIPTOR 構造体または KSPIN_DESCRIPTOR_EX 構造体のいずれかの AutomationTable メンバーに KSAUTOMATION_TABLE 構造体を提供することによってサポートされるプロパティ、イベント、メソッドを記述します。 詳細については、「AVStream 記述子」を参照してください。
イベントをサポートするために、AVStream ミニドライバーは、オートメーション テーブル内の KSEVENT_SET 構造体の配列を提供します。 各 KSEVENT_SET 構造体には、KSEVENT_ITEM 構造体の配列が含まれています。 各 KSEVENT_ITEM 構造体は、ミニドライバーが特定のイベントをサポートする方法について説明します。
ミニドライバーは、KSEVENT_ITEM 構造体に AVStrMiniAddEvent ハンドラーおよび AVStrMiniRemoveEventハンドラーを指定することで、イベントの動作をカスタマイズできます。
AVStream は、イベント有効化要求を受信すると、 KSEVENT_ENTRY 構造体を生成します。 ミニドライバーが AVStrAddEvent ハンドラーを提供している場合、AVStream は AVStrAddEvent への呼び出しで KSEVENT_ENTRY 構造体へのポインターを渡します。
AVStrAddEvent ハンドラーを指定しない場合、デフォルトでは、 AVStream はイベントをオブジェクト リストに追加します。 ミニドライバーは KSEVENT_ENTRY ポインターを受け取りません。 ミニドライバーは、KsFilterGenerateEvents または KsPinGenerateEvents を呼び出してイベントをトリガーできます。