CBaseAllocator.SetProperties-Methode

[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 SetProperties -Methode gibt die Anzahl der zuzuordnenden Puffer und die Größe der einzelnen Puffer an. Diese Methode implementiert die IMemAllocator::SetProperties-Methode .

Syntax

HRESULT SetProperties(
   ALLOCATOR_PROPERTIES *pRequest,
   ALLOCATOR_PROPERTIES *pActual
);

Parameter

pRequest

Zeiger auf eine ALLOCATOR_PROPERTIES Struktur, die die Pufferanforderungen enthält.

pActual

Zeiger auf eine ALLOCATOR_PROPERTIES-Struktur , die die tatsächlichen Puffereigenschaften empfängt.

Rückgabewert

Gibt einen der folgenden HRESULT-Werte zurück.

Rückgabecode BESCHREIBUNG
S_OK
Erfolg.
E_POINTER
NULL-Zeigerargument.
VFW_E_ALREADY_COMMITTED
Der zugeordnete Arbeitsspeicher kann nicht geändert werden, während der Filter aktiv ist.
VFW_E_BADALIGN
Es wurde eine ungültige Ausrichtung angegeben.
VFW_E_BUFFERS_OUTSTANDING
Mindestens ein Puffer ist weiterhin aktiv.

Bemerkungen

Diese Methode gibt die Pufferanforderungen an, weist jedoch keine Puffer zu. Rufen Sie die CBaseAllocator::Commit-Methode auf, um Puffer zuzuweisen.

Der Aufrufer ordnet zwei ALLOCATOR_PROPERTIES-Strukturen zu. Der Parameter pRequest enthält die Pufferanforderungen des Aufrufers, einschließlich der Anzahl der Puffer und der Größe jedes Puffers. Wenn die Methode zurückgibt, enthält der pActual-Parameter die tatsächlichen Puffereigenschaften, wie vom Allocator festgelegt. In der Basisklasse stimmen die tatsächlichen Eigenschaften immer mit den angeforderten Eigenschaften überein, wenn die Methode erfolgreich ist. Abgeleitete Klassen können dieses Verhalten außer Kraft setzen.

Die Zuweisung darf nicht committet werden und darf keine ausstehenden Puffer aufweisen. In der Basisklasse muss die Ausrichtung gleich 1 sein. Die CMemAllocator-Klasse überschreibt diese Anforderung.

Anforderungen

Anforderung Wert
Header
Amfilter.h (streams.h einschließen)
Bibliothek
Strmbase.lib (Einzelhandelsbuilds);
Strmbasd.lib (Debugbuilds)

Siehe auch

CBaseAllocator-Klasse