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.
HRESULT Reconfigure(
[in] IGraphConfigCallback *pCallback,
[in] PVOID pvContext,
[in] DWORD dwFlags,
[in] HANDLE hAbortEvent
);
[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.
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.
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.
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 |