Función KsAddItemToObjectBag (ks.h)

La función KsAddItemToObjectBag agrega un objeto o bloque de memoria al contenedor de objetos especificado.

Sintaxis

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

Parámetros

[in] ObjectBag

El KSOBJECT_BAG (equivalente al tipo PVOID) al que se va a agregar el elemento solicitado. Cada objeto AVStream (por ejemplo, KSFILTER y KSPIN) contiene un miembro denominado Bag. Pase ese miembro en este parámetro.

[in] Item

Puntero al elemento que se va a agregar al contenedor de objetos.

[in, optional] Free

Función a la que se llama cuando se quita el elemento del contenedor de objetos o cuando se elimina el contenedor de objetos. Esta función se usa normalmente para liberar cualquier memoria dinámica asociada a Item. La función debe crear prototipos de la siguiente manera:

void Free (IN PVOID Data);

Si el autor de la llamada no especifica este parámetro opcional, Item se libera con ExFreePool cuando se quita del contenedor de objetos o cuando se elimina el contenedor de objetos.

Valor devuelto

Devuelve STATUS_SUCCESS que indica que la adición se ha ido normalmente o STATUS_INSUFFICIENT_RESOURCES que indica que no hay suficientes recursos del sistema para que la operación continúe.

Comentarios

Antes de llamar a KsAddItemToObjectBag, el minidriver debe adquirir la exclusión mutua asociada al contenedor de objetos específico. Si ObjectBag es miembro de un KSDEVICE o KSFILTERFACTORY, adquiera la exclusión mutua del dispositivo. Si la bolsa es miembro de un KSFILTER, adquiera la exclusión mutua del control de filtro. Si el contenedor es miembro de un objeto KSPIN , adquiera la exclusión mutua del control de filtro KSFILTER primaria.

Para obtener más información, vea Bolsas de objetos y exclusiones mutuas en AVStream.

Requisitos

Requisito Value
Cliente mínimo compatible Disponible en Microsoft Windows XP y en sistemas operativos posteriores y DirectX 8.0 y versiones posteriores de DirectX.
Plataforma de destino Universal
Encabezado ks.h (incluye Ks.h)
Library Ks.lib
IRQL PASSIVE_LEVEL

Consulte también

ExFreePool

KsAllocateObjectBag

KsCopyObjectBagItems

KsDiscard

KsFreeObjectBag

KsRemoveItemFromObjectBag

_KsEdit