Freigeben über


IGraphConfig::Reconfigure-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 Reconfigure -Methode sperrt das Filterdiagramm und ruft eine Rückruffunktion in der Anwendung oder dem Filter auf, um eine dynamische Neukonfiguration durchzuführen.

Syntax

HRESULT Reconfigure(
  [in] IGraphConfigCallback *pCallback,
  [in] PVOID                pvContext,
  [in] DWORD                dwFlags,
  [in] HANDLE               hAbortEvent
);

Parameter

[in] pCallback

Zeiger auf die IGraphConfigCallback-Rückrufschnittstelle für die Anwendung oder den Filter.

[in] pvContext

Zeiger auf eine Variable vom Typ PVOID , die an die Rückrufroutine übergeben wird.

[in] dwFlags

Anwendungsdefinierte Flags, die an die Rückrufroutine übergeben werden.

[in] hAbortEvent

Handle für ein Ereignis. Wenn der Aufrufer ein Filter ist, der einen seiner Datenverarbeitungsthreads aufruft, sollte dieser Parameter ein Handle für ein Ereignis sein, das signalisiert wird, wenn der Filter in einen beendeten Zustand versetzt wird. Andernfalls kann dieser Parameter NULL sein. Weitere Informationen finden Sie in den Hinweisen.

Rückgabewert

Gibt bei erfolgreicher Ausführung S_OK oder andernfalls einen Fehlercode zurück. Mögliche Fehler sind VFW_E_WRONG_STATE, wenn die Methode keine Sperre für das Filterdiagramm erhalten konnte. was HRESULT von der Rückrufroutine zurückgegeben wurde; oder einen Fehlercode, der angibt, dass das Diagramm die Filter nicht in einen ausführungsbereiten Zustand versetzen konnte.

Hinweise

Diese Methode wird bereitgestellt, damit eine Anwendung oder ein Filter eine spezialisierte dynamische Grapherstellung implementieren kann. In den meisten Fällen ist die IGraphConfig::Reconnect-Methode jedoch angemessen und sollte bevorzugt werden, da sie die meisten Implementierungsdetails verarbeitet.

Bevor Sie diese Methode aufrufen, blockieren Sie alle Datenströme nach Bedarf, und pushen Sie die Daten durch das Diagramm (siehe IPinFlowControl::Block und IGraphConfig::P ushThroughData). Wenn die Rückrufmethode erfolgreich ist, versucht, IGraphConfig::Reconfigure alle Filter in den Ausführungszustand zu versetzen. (Der Aufrufer muss dann die Blockierung des Datenflusses aufheben.) Andernfalls wird der von der Rückrufmethode zurückgegebene Fehlercode zurückgegeben.

Wenn ein Filter diese Methode in einem seiner eigenen Datenverarbeitungsthreads aufruft, entsteht das Potenzial für einen Deadlock. Die -Methode ruft eine Sperre für das Filterdiagramm ab, die verhindern kann, dass der Filter beim Empfangen eines Aufrufs von IMediaFilter::Stop beendet wird. Um diese Situation zu verhindern, verwendet die -Methode ein Handle für ein vom Filter bereitgestelltes Ereignisobjekt. Der Filter sollte das Ereignis signalisieren, wenn er einen Aufruf der Stop-Methode empfängt.

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

Fehler- und Erfolgscodes

IGraphConfig-Schnittstelle