AVStream 中的事件處理

AVStream 篩選和釘選描述它們支援的屬性、事件和方法,方法是在KSFILTER_DESCRIPTOR結構或KSPIN_DESCRIPTOR_EX 結構的AutomationTable成員中提供KSAUTOMATION_TABLE結構。 如需詳細資訊,請參閱 AVStream 描述元

為了支援事件,AVStream minidriver 會在自動化資料表中提供 KSEVENT_SET 結構的陣列。 每個KSEVENT_SET結構都包含 KSEVENT_ITEM 結構的陣列。 每個KSEVENT_ITEM結構描述 minidriver 如何支援特定事件。

minidriver 可以藉由在 KSEVENT_ITEM 結構中提供 AVStrMiniAddEventAVStrMiniRemoveEvent 處理常式來自訂事件行為。

當 AVStream 收到事件啟用要求時,會產生KSEVENT_ENTRY結構。 如果 minidriver 已提供 AVStrAddEvent 處理常式,AVStream 會在 對 AVStrAddEvent的呼叫中傳遞KSEVENT_ENTRY結構的指標。

如果您未提供 AVStrAddEvent 處理常式,則根據預設,AVStream 會將事件新增至物件清單。 您的 minidriver 不會收到 KSEVENT_ENTRY 指標。 您的 minidriver 可以呼叫 KsFilterGenerateEventsKsPinGenerateEvents來觸發事件。