Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Jeśli piszesz minidriver AVStream, zobacz Obsługa zdarzeń w usłudze AVStream.
Zestawy zdarzeń to grupy powiązanych zdarzeń, dla których odbiornik może zażądać powiadomienia. Na przykład odbiornik może zarejestrować się w celu powiadomienia o zmianach stanu urządzenia lub zmianie położenia strumienia. W przypadku wystąpienia zdarzenia przesyłanie strumieniowe jądra powiadamia wszystkich klientów, którzy zarejestrowali się na potrzeby tego zdarzenia.
Minidrivers opisują, jak obsługują zdarzenie, udostępniając KSEVENT_ITEM strukturę zawierającą wskaźniki do procedur obsługi.
Słuchacze rejestrują się do otrzymywania powiadomień przez wywołanie procedury proxy strumieniowania jądra KsSynchronousDeviceControl przy użyciu kodu sterowania IOCTL_KS_ENABLE_EVENT i wskaźników do KSEVENT i struktur KSEVENTDATA.
Żądanie IOCTL_KS_DISABLE_EVENT wyłącza określone zdarzenie. Ten sam wskaźnik, który został użyty do włączenia zdarzenia, musi być używany do jego wyłączenia. Ten wskaźnik jednoznacznie identyfikuje zdarzenie. Opcjonalnie klient może określić wskaźnik o wartości NULL i długość zera, aby wyłączyć wszystkie aktywne zdarzenia dla klienta.
Wszystkie zestawy zdarzeń muszą obsługiwać flagę KSEVENT_TYPE_BASICSUPPORT. Zobacz KSEVENT, aby uzyskać listę dostępnych flag zdarzeń.
Niektóre typy zdarzeń wymagają dodatkowych parametrów do zarejestrowania w celu otrzymywania powiadomień o zdarzeniach. Na przykład zdarzenie KSEVENT_CLOCK_POSITION_MARK na zegarze jest wyzwalane, gdy zegar osiągnie określony znacznik czasu. W związku z tym klienci rejestrujący się, aby otrzymywać powiadomienia o tym zdarzeniu, muszą określić znacznik czasu, który ma wyzwolić zdarzenie.
W takim przypadku minidriver przekazuje dodatkowe parametry danych w buforze danych, umieszczając je za strukturą KSEVENTDATA. Minidrivery, które obsługują taki typ zdarzenia, używają rozszerzonej struktury danych, której pierwszy członek jest typu KSEVENTDATA do przechowywania danych powiadomień.