Partager via


KsAddItemToObjectBag, fonction (ks.h)

La fonction KsAddItemToObjectBag ajoute un objet ou un bloc de mémoire au sac d’objets donné.

Syntaxe

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

Paramètres

[in] ObjectBag

Le KSOBJECT_BAG (équivalent au type PVOID) auquel ajouter l’élément demandé. Chaque objet AVStream (par exemple, KSFILTER et KSPIN) contient un membre appelé Bag. Transmettez ce membre dans ce paramètre.

[in] Item

Pointeur vers l’élément à ajouter au sac d’objets.

[in, optional] Free

Fonction appelée lorsque l’élément est supprimé du sac d’objets ou lorsque le conteneur d’objets est supprimé. Cette fonction est généralement utilisée pour libérer toute mémoire dynamique associée à Item. La fonction doit être prototype comme suit :

void Free (IN PVOID Data);

Si l’appelant ne spécifie pas ce paramètre facultatif, Item est libéré avec ExFreePool lorsqu’il est supprimé du sac d’objets ou lorsque le sac d’objets est supprimé.

Valeur retournée

Retourne STATUS_SUCCESS indiquant que l’ajout s’est déroulé normalement ou STATUS_INSUFFICIENT_RESOURCES indiquant que les ressources système sont insuffisantes pour que l’opération se poursuive.

Remarques

Avant d’appeler KsAddItemToObjectBag, le minidriver doit acquérir le mutex associé au sac d’objets spécifique. Si ObjectBag est membre d’un objet KSDEVICE ou KSFILTERFACTORY, achetez le mutex d’appareil. Si le sac est membre d’un KSFILTER, achetez le mutex du contrôle de filtre. Si le sac est membre d’un objet KSPIN , achetez le mutex du contrôle de filtre KSFILTER parent.

Pour plus d’informations, consultez Sacsd’objets et mutexes dans AVStream.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Disponible dans Microsoft Windows XP et les systèmes d’exploitation ultérieurs et DirectX 8.0 et versions ultérieures de DirectX.
Plateforme cible Universal
En-tête ks.h (inclure Ks.h)
Bibliothèque Ks.lib
IRQL PASSIVE_LEVEL

Voir aussi

ExFreePool

KsAllocateObjectBag

KsCopyObjectBagItems

KsDiscard

KsFreeObjectBag

KsRemoveItemFromObjectBag

_KsEdit