Freigeben über


KsAddItemToObjectBag-Funktion (ks.h)

Die KsAddItemToObjectBag-Funktion fügt dem angegebenen Objektbehälter ein Objekt oder einen Speicherblock hinzu.

Syntax

KSDDKAPI NTSTATUS KsAddItemToObjectBag(
  [in]           KSOBJECT_BAG           ObjectBag,
  [in]           __drv_aliasesMem PVOID Item,
  [in, optional] PFNKSFREE              Free
);

Parameter

[in] ObjectBag

Der KSOBJECT_BAG (entspricht dem Typ PVOID), dem das angeforderte Element hinzugefügt werden soll. Jedes AVStream-Objekt (z. B. KSFILTER und KSPIN) enthält ein Element namens Bag. Übergeben Sie dieses Element in diesem Parameter.

[in] Item

Ein Zeiger auf das Element, das dem Objektbehälter hinzugefügt werden soll.

[in, optional] Free

Eine Funktion, die aufgerufen wird, wenn das Element aus dem Objektbehälter entfernt oder der Objektbehälter gelöscht wird. Diese Funktion wird in der Regel verwendet, um jeden dynamischen Arbeitsspeicher freizugeben, der mit Item verknüpft ist. Die Funktion sollte wie folgt prototypiert werden:

void Free (IN PVOID Data);

Wenn der Aufrufer diesen optionalen Parameter nicht angibt, wird Item mit ExFreePool freigegeben, wenn es aus dem Objektbehälter entfernt wird oder wenn der Objektbehälter gelöscht wird.

Rückgabewert

Entweder gibt STATUS_SUCCESS zurück, die angibt, dass die Ergänzung normal erfolgt ist, oder STATUS_INSUFFICIENT_RESOURCES, die angibt, dass nicht genügend Systemressourcen vorhanden sind, um den Vorgang fortzusetzen.

Hinweise

Vor dem Aufrufen von KsAddItemToObjectBag muss der Minidriver den Mutex abrufen, der der spezifischen Objekttasche zugeordnet ist. Wenn ObjectBag ein Mitglied einer KSDEVICE - oder KSFILTERFACTORY ist, rufen Sie den Gerätemutex ab. Wenn es sich bei der Tasche um ein Element eines KSFILTER handelt, rufen Sie das Mutex des Filtersteuerelements ab. Wenn es sich bei der Tasche um ein Element eines KSPIN-Objekts handelt, rufen Sie das Mutex des übergeordneten KSFILTER-Filtersteuerelements ab.

Weitere Informationen finden Sie unter Objekttaschen und Mutexes in AVStream.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Verfügbar in Microsoft Windows XP und höheren Betriebssystemen und DirectX 8.0 und höher DirectX-Versionen.
Zielplattform Universell
Header ks.h (einschließlich Ks.h)
Bibliothek Ks.lib
IRQL PASSIVE_LEVEL

Weitere Informationen

ExFreePool

KsAllocateObjectBag

KsCopyObjectBagItems

KsDiscard

KsFreeObjectBag

KsRemoveItemFromObjectBag

_KsEdit