Compartilhar via


Função KsAddItemToObjectBag (ks.h)

A função KsAddItemToObjectBag adiciona um objeto ou bloco de memória ao recipiente de objeto fornecido.

Sintaxe

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

Parâmetros

[in] ObjectBag

O KSOBJECT_BAG (equivalente ao tipo PVOID) ao qual adicionar o item solicitado. Cada objeto AVStream (por exemplo, KSFILTER e KSPIN) contém um membro chamado Bag. Passe esse membro nesse parâmetro.

[in] Item

Um ponteiro para o item a ser adicionado ao recipiente de objetos.

[in, optional] Free

Uma função que é chamada quando o item é removido do recipiente de objetos ou quando o recipiente de objetos é excluído. Normalmente, essa função é usada para liberar qualquer memória dinâmica associada ao Item. A função deve ser protótipo da seguinte maneira:

void Free (IN PVOID Data);

Se o chamador não especificar esse parâmetro opcional, Item será liberado com ExFreePool quando removido do recipiente de objetos ou quando o recipiente de objetos for excluído.

Retornar valor

Retorna STATUS_SUCCESS indicando que a adição ocorreu normalmente ou STATUS_INSUFFICIENT_RESOURCES indicando que não há recursos suficientes do sistema para a operação continuar.

Comentários

Antes de chamar KsAddItemToObjectBag, o minidriver deve adquirir o mutex associado ao recipiente de objeto específico. Se ObjectBag for membro de um KSDEVICE ou KSFILTERFACTORY, adquira o mutex do dispositivo. Se o recipiente for membro de um KSFILTER, adquira o mutex de controle de filtro. Se o recipiente for membro de um objeto KSPIN , adquira o mutex de controle de filtro do KSFILTER pai.

Para obter mais informações, consulte Sacos de objeto e mutexes no AVStream.

Requisitos

Requisito Valor
Cliente mínimo com suporte Disponível no Microsoft Windows XP e em sistemas operacionais posteriores e no DirectX 8.0 e versões posteriores do DirectX.
Plataforma de Destino Universal
Cabeçalho ks.h (inclua Ks.h)
Biblioteca Ks.lib
IRQL PASSIVE_LEVEL

Confira também

ExFreePool

KsAllocateObjectBag

KsCopyObjectBagItems

KsDiscard

KsFreeObjectBag

KsRemoveItemFromObjectBag

_KsEdit