Méthode IMemAllocator ::D ecommit (strmif.h)

[La fonctionnalité associée à cette page, DirectShow, est une fonctionnalité héritée. Il a été remplacé par MediaPlayer, IMFMediaEngine et Audio/Video Capture dans Media Foundation. Ces fonctionnalités ont été optimisées pour Windows 10 et Windows 11. Microsoft recommande vivement au nouveau code d’utiliser MediaPlayer, IMFMediaEngine et La capture audio/vidéo dans Media Foundation au lieu de DirectShow, lorsque cela est possible. Microsoft suggère que le code existant qui utilise les API héritées soit réécrit pour utiliser les nouvelles API si possible.]

La Decommit méthode libère la mémoire tampon.

Syntaxe

HRESULT Decommit();

Valeur de retour

Retourne S_OK en cas de réussite ou une valeur HRESULT indiquant la cause de l’erreur.

Remarques

Tous les threads en attente dans la méthode IMemAllocator ::GetBuffer retournent avec une erreur. D’autres appels à GetBuffer échouent, jusqu’à ce que la méthode IMemAllocator ::Commit soit appelée.

L’objectif de la Decommit méthode est d’empêcher les filtres d’obtenir d’autres exemples à partir de l’allocateur. Les filtres qui contiennent déjà un nombre de références sur un exemple ne sont pas affectés. Une fois qu’un filtre libère un exemple et que le nombre de références passe à zéro, l’exemple n’est plus disponible.

L’allocateur peut libérer la mémoire appartenant à n’importe quel échantillon avec un nombre de références égal à zéro. Ainsi, la Decommit méthode « libère » la mémoire dans le sens où les filtres cessent d’y accéder. Le retour de la mémoire au tas dépend de l’implémentation de l’allocateur. Certains allocateurs attendent leur propre méthode de destructeur. Toutefois, un répartiteur ne doit pas laisser de mémoire allouée derrière lui-même lorsqu’il se supprime lui-même. Par conséquent, le destructeur d’un allocator doit attendre que tous ses échantillons soient libérés.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 2000 Professionnel [applications de bureau uniquement]
Serveur minimal pris en charge Windows 2000 Server [applications de bureau uniquement]
Plateforme cible Windows
En-tête strmif.h (include Dshow.h)
Bibliothèque Strmiids.lib

Voir aussi

Codes d’erreur et de réussite

IMemAllocator Interface