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. Essa função normalmente é usada para liberar qualquer memória dinâmica associada a 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 é excluído.

Valor de retorno

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

Observações

Antes de chamar KsAddItemToObjectBag, o minidriver deve adquirir o mutex associado ao recipiente de objetos 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 Object Bags and Mutexes in AVStream.

Requisitos

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

Consulte também

ExFreePool

KsAllocateObjectBag

KsCopyObjectBagItems

KsDiscard

KsFreeObjectBag

KsRemoveItemFromObjectBag

_KsEdit