Condividi tramite


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 oggetti.

[in, optional] Free

Funzione chiamata quando l'elemento viene rimosso dal contenitore oggetti o quando viene eliminato il contenitore di oggetti. Questa funzione viene in genere usata 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 è andata normalmente o STATUS_INSUFFICIENT_RESOURCES che indica che l'operazione non è sufficiente per continuare.

Osservazioni

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 è membro di un KSFILTER, acquisire il mutex del controllo filtro. Se il contenitore è membro di un oggetto KSPIN, acquisire il mutex del controllo filtro KSFILTER padre.

Per altre informazioni, vedere e Mutexes in AVStream.

Fabbisogno

Requisito Valore
client minimo supportato Disponibile in Microsoft Windows XP e nei sistemi operativi successivi e in DirectX 8.0 e versioni successive di DirectX.
piattaforma di destinazione Universale
intestazione ks.h (include Ks.h)
libreria Ks.lib
IRQL PASSIVE_LEVEL

Vedere anche

exFreePool

KsAllocateObjectBag

KsCopyObjectBagItems

KsDiscard

KsFreeObjectBag

KsRemoveItemFromObjectBag

_KsEdit