Metodo IMemAllocator::D ecommit (strmif.h)

[La funzionalità associata a questa pagina, DirectShow, è una funzionalità legacy. È stata sostituita da MediaPlayer, IMFMediaEngine e Audio/Video Capture in Media Foundation. Queste funzionalità sono state ottimizzate per Windows 10 e Windows 11. Microsoft consiglia vivamente che il nuovo codice usi MediaPlayer, IMFMediaEngine e Audio/Video Capture in Media Foundation invece di DirectShow, quando possibile. Microsoft suggerisce che il codice esistente che usa le API legacy venga riscritto per usare le nuove API, se possibile.

Il Decommit metodo rilascia la memoria del buffer.

Sintassi

HRESULT Decommit();

Valore restituito

Restituisce S_OK se ha esito positivo o un valore HRESULT che indica la causa dell'errore.

Commenti

Tutti i thread in attesa nel metodo IMemAllocator::GetBuffer restituiscono un errore. Altre chiamate a GetBuffer hanno esito negativo finché non viene chiamato il metodo IMemAllocator::Commit .

Lo scopo del Decommit metodo è impedire ai filtri di ottenere altri campioni dall'allocatore. I filtri che contengono già un conteggio dei riferimenti su un campione non sono interessati. Dopo che un filtro rilascia un campione e il conteggio dei riferimenti passa a zero, tuttavia, l'esempio non è più disponibile.

L'allocatore può liberare la memoria appartenente a qualsiasi campione con un conteggio dei riferimenti pari a zero. Pertanto, il Decommit metodo "rilascia" la memoria nel senso che i filtri interrompno l'accesso ad esso. L'effettiva restituzione della memoria all'heap dipende dall'implementazione dell'allocatore. Alcuni allocatori attendono fino al metodo distruttore. Tuttavia, un allocatore non deve lasciare alcuna memoria allocata quando viene eliminata. Pertanto, il distruttore di un allocatore deve attendere il rilascio di tutti i campioni.

Requisiti

Requisito Valore
Client minimo supportato Windows 2000 Professional [solo app desktop]
Server minimo supportato Windows 2000 Server [solo app desktop]
Piattaforma di destinazione Windows
Intestazione strmif.h (include Dshow.h)
Libreria Strmiids.lib

Vedi anche

Codici di errore e di esito positivo

Interfaccia IMemAllocator