fonction _KsEdit (ks.h)
La fonction KsEdit garantit qu’un élément donné est alloué dynamiquement et associé à un objet AVStream via le conteneur d’objets.
Syntaxe
KSDDKAPI NTSTATUS _KsEdit(
[in] KSOBJECT_BAG ObjectBag,
[in, out] PVOID *PointerToPointerToItem,
[in] ULONG NewSize,
[in] ULONG OldSize,
[in] ULONG Tag
);
Paramètres
[in] ObjectBag
Le KSOBJECT_BAG (équivalent au type PVOID) à utiliser dans la vérification. Si l’élément n’est pas contenu dans le conteneur d’objets, KsEdit alloue dynamiquement une mémoire suffisante pour l’élément, copie l’ancien contenu et place la mémoire nouvellement allouée dans ce conteneur d’objets.
[in, out] PointerToPointerToItem
Pointeur vers un pointeur vers l’élément en cours de modification.
[in] NewSize
Nombre d’octets à allouer pour l’élément.
[in] OldSize
Nombre d’octets que l’élément prend actuellement.
[in] Tag
Contient la balise de pool à utiliser pour les allocations. Les pilotes spécifient normalement la balise de pool sous la forme d’une chaîne allant jusqu’à quatre caractères, délimitées par des guillemets simples. La chaîne est généralement spécifiée dans l’ordre inverse. La valeur ASCII de chaque caractère de la balise doit être comprise entre 0 et 127.
Valeur de retour
Retourne la réussite ou STATUS_INSUFFICIENT_RESOURCES.
Remarques
Notez que KsEdit et KsEditSized sont des macros créées pour faciliter l’utilisation de _KsEdit. Bien que _KsEdit vous permet de redimensionner un élément, KsEdit ne le fait pas. La macro KsEdit appelle _KsEdit, en spécifiant taille de(** PointerToPointerToItem) comme tailles.
Par exemple, considérez une broche qui doit modifier son cadre d’allocateur lors de la création. Étant donné que le descripteur est codé statiquement et que de nouvelles broches peuvent l’utiliser, la solution consiste à modifier le descripteur de broche comme suit :
KsEdit(Pin, &Pin->Descriptor, Tag);
Pin->Descriptor->AllocatorFraming = NewAllocatorFraming;
L’appel à KsEdit garantit que >Descript eur>est une mémoire dynamique associée à . Notez que la modification arbitraire des descripteurs et d’autres structures AVStream peut entraîner des résultats indésirables. Les minidrivers doivent faire preuve de prudence lors de l’utilisation de KsEdit sur les structures AVStream.
KsEditSized appelle _KsEdit avec les mêmes paramètres qu’il reçoit, sauf que 'objet est remplacé par Object->Bag et que le pointeur est de typecast vers PVOID.
Notez que lors de l’appel de _KsEdit, un appelant doit contenir le mutex associé au conteneur. Pour plus d’informations, consultez sacs d’objets et mutexes dans AVStream.
Exigences
Exigence | Valeur |
---|---|
client minimum 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 | Universel |
d’en-tête | ks.h (include Ks.h) |
bibliothèque | Ks.lib |
IRQL | PASSIVE_LEVEL |