Freigeben über


Übersicht über Ereignisbenachrichtigungen

[Das dieser Seite zugeordnete Feature DirectShow ist ein Legacyfeature. Es wurde von MediaPlayer, IMFMediaEngine und Audio/Video Capture in Media Foundation abgelöst. Diese Features wurden für Windows 10 und Windows 11 optimiert. Microsoft empfiehlt dringend, dass neuer Code mediaPlayer, IMFMediaEngine und Audio/Video Capture in Media Foundation anstelle von DirectShow verwendet, wenn möglich. Microsoft schlägt vor, dass vorhandener Code, der die Legacy-APIs verwendet, so umgeschrieben wird, dass nach Möglichkeit die neuen APIs verwendet werden.]

Ein Filter benachrichtigt den Filter Graph-Manager über ein Ereignis, indem er eine Ereignisbenachrichtigung veröffentlicht. Das Ereignis kann ein erwartetes Ereignis sein, z. B. das Ende eines Datenstroms, oder es kann einen Fehler darstellen, z. B. ein Fehler beim Rendern eines Datenstroms. Der Filter Graph-Manager behandelt einige Filterereignisse selbst, und andere werden von der Anwendung verarbeitet. Wenn der Filter Graph-Manager kein Filterereignis behandelt, platziert er die Ereignisbenachrichtigung in einer Warteschlange. Das Filterdiagramm kann auch eigene Ereignisbenachrichtigungen für die Anwendung in die Warteschlange stellen.

Eine Anwendung ruft Ereignisse aus der Warteschlange ab und antwortet auf diese basierend auf dem Ereignistyp. Ereignisbenachrichtigungen in DirectShow ähneln daher dem Microsoft Windows-Nachrichtenwarteschlangenschema. Eine Anwendung kann auch das Standardverhalten des Filter Graph-Managers für einen bestimmten Ereignistyp abbrechen. Der Graph-Manager filtert diese Ereignisse dann direkt in die Warteschlange für die Anwendung, die verarbeitet werden soll.

Dieser Mechanismus ermöglicht

  • Der Filter Graph-Manager für die Kommunikation mit der Anwendung.
  • Filtert, um sowohl mit der Anwendung als auch mit dem Filter Graph-Manager zu kommunizieren.
  • Die Anwendung, um den Grad der Beteiligung an der Behandlung von Ereignissen zu bestimmen.