IMemAllocator::D ecommit-Methode (strmif.h)
[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.]
Die Decommit
-Methode gibt den Pufferspeicher frei.
Syntax
HRESULT Decommit();
Rückgabewert
Gibt bei erfolgreicher Ausführung S_OK oder einen HRESULT-Wert zurück, der die Fehlerursache angibt.
Hinweise
Alle Threads, die in der IMemAllocator::GetBuffer-Methode warten, werden mit einem Fehler zurückgegeben. Weitere Aufrufe von GetBuffer schlagen fehl, bis die IMemAllocator::Commit-Methode aufgerufen wird.
Der Zweck der Decommit
-Methode besteht darin, zu verhindern, dass Filter weitere Stichproben vom Allocator erhalten. Filter, die bereits eine Verweisanzahl für eine Stichprobe enthalten, sind nicht betroffen. Nachdem ein Filter ein Beispiel freigegeben hat und die Verweisanzahl auf 0 (null) steigt, ist das Beispiel jedoch nicht mehr verfügbar.
Der Zuweisungsgeber kann den Arbeitsspeicher, der zu einer beliebigen Stichprobe gehört, mit einer Verweisanzahl von 0 (null) freigeben. Daher "gibt" die Decommit
Methode den Speicher in dem Sinne frei, dass Filter keinen Zugriff mehr darauf haben. Ob der Arbeitsspeicher tatsächlich zum Heap zurückkehrt, hängt von der Implementierung der Zuweisung ab. Einige Zuweisungen warten, bis ihre eigene Destruktormethode verwendet wird. Ein Zuweisungsobjekt darf jedoch keinen zugeordneten Arbeitsspeicher zurücklassen, wenn er sich selbst löscht. Daher muss der Destruktor eines Zuweisungsgebers warten, bis alle seine Proben freigegeben wurden.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Windows 2000 Professional [nur Desktop-Apps] |
Unterstützte Mindestversion (Server) | Windows 2000 Server [nur Desktop-Apps] |
Zielplattform | Windows |
Kopfzeile | strmif.h (include Dshow.h) |
Bibliothek | Strmiids.lib |