IMemAllocator-Schnittstelle (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 IMemAllocator Schnittstelle ordnet Medienbeispiele zu, um Daten zwischen Pins zu verschieben.

Diese Schnittstelle wird von Pins verwendet, die Zuweisungen gemeinsam nutzen, wenn der Eingabenadel die IMemInputPin-Schnittstelle verfügbar macht. Die Pins verhandeln, welcher Pin die Zuweisung bereitstellt. Die Zuweisung wird verwendet, um Speicherpuffer zuzuweisen, leere Puffer abzurufen und Puffer freizugeben. Nicht jeder Filter erstellt eine eigene Zuweisung, sodass ein Allocator von mehreren Filtern verwendet werden kann. Weitere Informationen finden Sie unter Herstellen einer Verbindung mit Filtern.

Anwendungen verwenden diese Schnittstelle in der Regel nicht.

Führen Sie die folgenden Schritte aus, um eine Zuweisung zu verwenden:

  1. Rufen Sie die IMemAllocator::SetProperties-Methode auf, um die Pufferanforderungen anzugeben, einschließlich der Anzahl der Puffer und der Größe jedes Puffers.
  2. Rufen Sie die IMemAllocator::Commit-Methode auf, um die Puffer zuzuweisen.
  3. Rufen Sie die IMemAllocator::GetBuffer-Methode auf, um Medienbeispiele abzurufen. Diese Methode wird blockiert, bis das nächste Beispiel verfügbar ist.
  4. Wenn Sie mit den einzelnen Beispielen fertig sind, rufen Sie die IUnknown::Release-Methode für das Beispiel auf. Das Beispiel wird nicht gelöscht, wenn die Verweisanzahl 0 (null) erreicht. Stattdessen kehrt das Beispiel zur free-Liste des Zuweisungsgebers zurück.
  5. Wenn Sie mit der Zuweisung fertig sind, rufen Sie die IMemAllocator::D ecommit-Methode auf, um den Arbeitsspeicher für die Puffer freizugeben.

Vererbung

Die IMemAllocator-Schnittstelle erbt von der IUnknown-Schnittstelle . IMemAllocator verfügt auch über folgende Membertypen:

Methoden

Die IMemAllocator-Schnittstelle verfügt über diese Methoden.

 
IMemAllocator::Commit

Die Commit-Methode ordnet den Pufferspeicher zu.
IMemAllocator::D ecommit

Die Decommit-Methode gibt den Pufferspeicher frei.
IMemAllocator::GetBuffer

Die GetBuffer-Methode ruft ein Medienbeispiel ab, das einen leeren Puffer enthält.
IMemAllocator::GetProperties

Die GetProperties-Methode ruft die Anzahl der Puffer ab, die vom Allocator erstellt werden, und die Puffereigenschaften.
IMemAllocator::ReleaseBuffer

Die ReleaseBuffer-Methode gibt ein Medienbeispiel frei.
IMemAllocator::SetProperties

Die SetProperties-Methode gibt die Anzahl der zuzuordnenden Puffer und die Größe der einzelnen Puffer an.

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)