Funzione KsAddItemToObjectBag (ks.h)

La funzione KsAddItemToObjectBag aggiunge un oggetto o un blocco di memoria al contenitore di oggetti specificato.

Sintassi

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

Parametri

[in] ObjectBag

Oggetto KSOBJECT_BAG (equivalente al tipo PVOID) a cui aggiungere l'elemento richiesto. Ogni oggetto AVStream ,ad esempio KSFILTER e KSPIN, contiene un membro denominato Bag. Passare il membro in questo parametro.

[in] Item

Puntatore all'elemento da aggiungere al contenitore di oggetti.

[in, optional] Free

Funzione che viene chiamata quando l'elemento viene rimosso dal contenitore oggetti o quando il contenitore oggetti viene eliminato. Questa funzione viene in genere utilizzata per liberare qualsiasi memoria dinamica associata a Item. La funzione deve essere prototipo come segue:

void Free (IN PVOID Data);

Se il chiamante non specifica questo parametro facoltativo, Item viene liberato con ExFreePool quando viene rimosso dal contenitore oggetti o quando il contenitore oggetti viene eliminato.

Valore restituito

Restituisce STATUS_SUCCESS che indica che l'addizione è stata eseguita normalmente o STATUS_INSUFFICIENT_RESOURCES che indica che sono presenti risorse di sistema insufficienti per continuare l'operazione.

Commenti

Prima di chiamare KsAddItemToObjectBag, il minidriver deve acquisire il mutex associato al contenitore di oggetti specifico. Se ObjectBag è membro di un KSDEVICE o KSFILTERFACTORY, acquisire il mutex del dispositivo. Se il contenitore è un membro di un KSFILTER, acquisire il mutex del controllo filtro. Se il contenitore è un membro di un oggetto KSPIN , acquisire il mutex del controllo filtro KSFILTER padre.

Per altre informazioni, vedere Contenitori di oggetti e mutex in AVStream.

Requisiti

Requisito Valore
Client minimo supportato Disponibile nei sistemi operativi Microsoft Windows XP e versioni successive e DirectX 8.0 e versioni successive di DirectX.
Piattaforma di destinazione Universale
Intestazione ks.h (include Ks.h)
Libreria Ks.lib
IRQL PASSIVE_LEVEL

Vedi anche

ExFreePool

KsAllocateObjectBag

KsCopyObjectBagItems

KsDiscard

KsFreeObjectBag

KsRemoveItemFromObjectBag

_KsEdit