Freigeben über


KsAddItemToObjectBag-Funktion (ks.h)

Die funktion KsAddItemToObjectBag fügt dem angegebenen Objektbehälter ein Objekt oder speicherblock hinzu.

Syntax

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

Parameter

[in] ObjectBag

Die 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 wird oder wenn der Objektbehälter gelöscht wird. Diese Funktion wird in der Regel verwendet, um jeden dynamischen Speicher freizugeben, der Itemzugeordnet 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 er aus dem Objektbehälter entfernt wird oder wenn der Objektbehälter gelöscht wird.

Rückgabewert

Gibt entweder STATUS_SUCCESS zurück, der angibt, dass die Ergänzung normal war, oder STATUS_INSUFFICIENT_RESOURCES angibt, dass nicht genügend Systemressourcen vorhanden sind, damit der Vorgang fortgesetzt werden kann.

Bemerkungen

Vor dem Aufrufen von KsAddItemToObjectBagmuss der Minidriver den mutex abrufen, der dem spezifischen Objektbehälter zugeordnet ist. Wenn ObjectBag Mitglied eines KSDEVICE- oder KSFILTERFACTORY-ist, rufen Sie den Gerätemutex ab. Wenn der Beutel Mitglied eines KSFILTER-ist, rufen Sie den Filtersteuerelement-Mutex ab. Wenn der Beutel Mitglied eines KSPIN--Objekts ist, rufen Sie den Mutex des übergeordneten KSFILTER-Steuerelements ab.

Weitere Informationen finden Sie unter Object Bags und Mutexes in AVStream.

Anforderungen

Anforderung Wert
mindestens unterstützte Client- Verfügbar in Microsoft Windows XP und höheren Betriebssystemen und DirectX 8.0 und höher directX-Versionen.
Zielplattform- Universal
Header- ks.h (enthalten Ks.h)
Library Ks.lib
IRQL- PASSIVE_LEVEL

Siehe auch

ExFreePool-

KsAllocateObjectBag

KsCopyObjectBagItems

KsDiscard-

KsFreeObjectBag-

KsRemoveItemFromObjectBag

_KsEdit