KS 事件

如果您要撰寫 AVStream 迷你驅動程式,請參閱 AVStream 中的事件處理

事件集是接聽程式可以要求通知的相關事件群組。 例如,接聽程式可以註冊以收到裝置狀態變更的通知,或資料流程位置的變更。 事件發生時,核心串流會通知任何已註冊此事件的用戶端。

Minidrivers 藉由提供包含處理常式指標 的KSEVENT_ITEM 結構,描述它們如何支援事件。

接聽程式會呼叫核心串流 Proxy 常式KsSynchronousDeviceControl,以IOCTL_KS_ENABLE_EVENT控制程式代碼和KSEVENTDATA.structure的指標來註冊通知。

IOCTL_KS_DISABLE_EVENT要求會停用指定的事件。 用來啟用事件的相同指標必須用來停用它。 此指標可唯一識別事件。 或者,用戶端可以指定 Null 指標和長度為零,以停用用戶端的所有作用中事件。

所有事件集都必須支援KSEVENT_TYPE_BASICSUPPORT旗標。 如需可用事件旗標的清單,請參閱 KSEVENT

某些事件種類需要額外的參數來註冊事件通知。 例如,當時鐘到達特定時間戳記時,就會觸發時鐘上的 KSEVENT_CLOCK_POSITION_MARK 事件。 因此,註冊以通知此事件的用戶端必須指定要觸發事件的時間戳記。

在這種情況下,迷你驅動程式會在 KSEVENTDATA 結構之後,在資料緩衝區中傳遞其他資料參數。 支援這類事件種類的迷你驅動程式會使用擴充的資料結構,其中第一個成員屬於 KSEVENTDATA 類型,以保存通知資料。