Freigeben über


IPinConnection::NotifyEndOfStream-Methode (strmif.h)

[Das dieser Seite zugeordnete Feature DirectShow ist ein Legacyfeature. Es wurde durch MediaPlayer, IMFMediaEngine und Audio/Video Capture in Media Foundation ersetzt. Diese Features wurden für Windows 10 und Windows 11 optimiert. Microsoft empfiehlt dringend, dass neuer Code nach Möglichkeit MediaPlayer, IMFMediaEngine und Audio/Video Capture in Media Foundation anstelle von DirectShow verwendet. Microsoft schlägt vor, vorhandenen Code, der die Legacy-APIs verwendet, um nach Möglichkeit die neuen APIs zu verwenden.]

Die NotifyEndOfStream -Methode fordert eine Benachrichtigung von der Anheftung an, wenn die nächste Streamendebedingung auftritt.

Syntax

HRESULT NotifyEndOfStream(
  [in] HANDLE hNotifyEvent
);

Parameter

[in] hNotifyEvent

Behandeln Sie ein Ereignisobjekt, das vom Pin signalisiert wird.

Rückgabewert

Gibt einen HRESULT-Wert zurück. Die folgenden Werte sind möglich.

Rückgabecode Beschreibung
S_FALSE
Das Ereignishandle war NULL, aber es gab kein Ereignishandle, das zurückgesetzt werden konnte.
S_OK
Ereignishandle wurde festgelegt. (Wenn das Ereignishandle NULL war, wurde die Ereignisbenachrichtigung abgebrochen.)

Hinweise

Mit dieser Methode kann der Aufrufer Daten durch einen Teil des Filterdiagramms pushen, der mit diesem Pin endet.

Angenommen, der Aufrufer pusht Daten von einem Ausgabepin namens "A" für einen Filter an einen Eingabestift namens "B" für einen anderen Filter, möglicherweise mit Zwischenfiltern, die ihn verbinden. Die folgende Abfolge von Ereignissen würde stattfinden.

  1. Der Aufrufer blockiert den Datenfluss an Pin A.
  2. Es ruft NotifyEndOfStream Pin B auf.
  3. Es ruft IPin::EndOfStream an dem Eingabenadel auf, der mit Pin A verbunden ist.
  4. Da die restlichen Daten nachgelagert werden, werden diese Filter die Benachrichtigung zum Ende des Datenstroms übertragen.
  5. Wenn Pin B die Benachrichtigung zum Ende des Datenstroms empfängt, signalisiert er das im hNotifyEvent-Parameter angegebene Ereignis. An diesem Punkt kann der Aufrufer das Diagramm zwischen Pin A und Pin B sicher neu konfigurieren.
Da der Zweck dieser Methode darin besteht, dem Aufrufer zu ermöglichen, den Graphen dynamisch neu zu erstellen und dann die Verbindung neu zu starten, stellt die Benachrichtigung zum Ende des Datenstroms nicht das tatsächliche Ende des Datenstroms dar. Daher gibt Pin B die Zustands- oder Signalbedingung am Ende des Datenstroms nicht EC_COMPLETE weiter. Dies ist eine Ausnahme von den üblichen Regeln für den Datenfluss im Filterdiagramm.

Es liegt in der Verantwortung des Aufrufers, die Benachrichtigung abzubrechen, indem diese Methode erneut mit einem NULL-Ereignishandle aufgerufen wird.

Das Filterdiagramm ruft diese Methode innerhalb der IGraphConfig::Reconnect-Methode auf. Wenn eine Anwendung oder ein Filter eine spezielle dynamische Neukonfiguration des Graphen durchführt (mit der IGraphConfig::Reconfigure-Methode ), wird diese Methode möglicherweise zuerst aufgerufen, um Daten durch den Teil des Graphen zu pushen, der neu konfiguriert wird.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows XP [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Server 2003 [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile strmif.h (include Dshow.h)
Bibliothek Strmiids.lib

Weitere Informationen

Dynamische Wiederherstellung der Verbindung

Fehler- und Erfolgscodes

IPinConnection-Schnittstelle