Freigeben über


KsRemoveItemFromObjectBag-Funktion (ks.h)

Die KsRemoveItemFromObjectBag-Funktion entfernt ein Element aus einem Objektbehälter.

Syntax

KSDDKAPI ULONG KsRemoveItemFromObjectBag(
  [in] KSOBJECT_BAG ObjectBag,
  [in] PVOID        Item,
  [in] BOOLEAN      Free
);

Parameter

[in] ObjectBag

Dieser Parameter gibt die KSOBJECT_BAG (entspricht dem Typ PVOID), aus dem Item entfernt werden soll.

[in] Item

Ein Zeiger auf das Element, das aus dem angeforderten Objektbehälter entfernt werden soll. Beachten Sie, dass Item nur aus dem angeforderten Objektbehälter entfernt wird. Es wird nicht aus anderen Objekttaschen entfernt, in denen es sich möglicherweise befindet.

[in] Free

Dieser Parameter gibt an , ob Item freigegeben werden soll, nachdem es aus dem angegebenen Objektbehälter entfernt wurde. Legen Sie Free nur auf TRUE fest, wenn Item in keinem anderen Objektbehälter enthalten ist.

Rückgabewert

Gibt die Anzahl der Verweise auf Element zurück. Ein Rückgabewert von 0 gibt an, dass Item zur Aufrufzeit nicht in ObjectBag war.

Ein Rückgabewert von 1 gibt an, dass Item erfolgreich aus ObjectBag entfernt wurde und dass es sich nicht in einem anderen Objektbehälter befand. Wenn in diesem Fall ein free angefordert wurde, gibt AVStream Item mithilfe von ExFreePool oder der Free-Methode frei, die zur KsAddItemToObjectBag-Aufrufzeit angegeben wurde.

Ein Rückgabewert über 1 gibt an, dass das Element in einem anderen Objektbehälter vorhanden ist und dass noch Verweise darauf vorhanden sind. In diesem Fall hat AVStream Item aus ObjectBag entfernt, es jedoch unabhängig vom Wert von Free nicht freigegeben.

Hinweise

KsRemoveItemFromObjectBag gibt Element nur frei, wenn die Anzahl der Verweise für dieses Element 0 ist und ein Free angefordert wurde.

Weitere Informationen zu Objekttaschen finden Sie unter Object Bags.

Beachten Sie, dass der mutex, der der Tasche zugeordnet ist, gehalten werden muss. Weitere Informationen finden Sie unter 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

KsAddItemToObjectBag

KsAllocateObjectBag

KsCopyObjectBagItems

KsDiscard

KsFreeObjectBag

KsMergeAutomationTables