Condividi tramite


Interfaccia IMemAllocator (strmif.h)

[La funzionalità associata a questa pagina, DirectShow, è una funzionalità legacy. È stata sostituita da MediaPlayer, FMMediaEngine 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, FMMediaEngine e Audio/Video Capture in Media Foundation anziché DirectShow, quando possibile. Microsoft suggerisce che il codice esistente che usa le API legacy venga riscritto per usare le nuove API, se possibile.

L'interfaccia IMemAllocator alloca esempi multimediali per lo spostamento dei dati tra i pin.

Questa interfaccia viene usata dai pin che condividono allocatori, quando il pin di input espone l'interfaccia IMemInputPin . I pin negoziano il pin che fornirà l'allocatore. L'allocatore viene usato per allocare buffer di memoria, recuperare buffer vuoti e buffer di rilascio. Non tutti i filtri creano un proprio allocatore, quindi un allocatore può essere usato da diversi filtri. Per altre informazioni, vedere Modalità di connessione dei filtri.

Le applicazioni in genere non usano questa interfaccia.

Per usare un allocatore, seguire questa procedura:

  1. Chiamare il metodo IMemAllocator::SetProperties per specificare i requisiti del buffer, incluso il numero di buffer e le dimensioni di ogni buffer.
  2. Chiamare il metodo IMemAllocator::Commit per allocare i buffer.
  3. Chiamare il metodo IMemAllocator::GetBuffer per recuperare esempi multimediali. Questo metodo blocca fino a quando l'esempio successivo non diventa disponibile.
  4. Al termine di ogni esempio, chiamare il metodo IUnknown::Release nell'esempio. L'esempio non viene eliminato quando il numero di riferimenti raggiunge zero. L'esempio restituisce invece all'elenco gratuito dell'allocatore.
  5. Al termine dell'uso dell'allocatore, chiamare il metodo IMemAllocator::D ecommit per rilasciare la memoria per i buffer.

Ereditarietà

L'interfaccia IMemAllocator eredita dall'interfaccia IUnknown . IMemAllocator include anche questi tipi di membri:

Metodi

L'interfaccia IMemAllocator include questi metodi.

 
IMemAllocator::Commit

Il metodo Commit alloca la memoria del buffer.
IMemAllocator::D ecommit

Il metodo Decommit rilascia la memoria del buffer.
IMemAllocator::GetBuffer

Il metodo GetBuffer recupera un esempio multimediale contenente un buffer vuoto.
IMemAllocator::GetProperties

Il metodo GetProperties recupera il numero di buffer creati dall'allocatore e le proprietà del buffer.
IMemAllocator::ReleaseBuffer

Il metodo ReleaseBuffer rilascia un esempio multimediale.
IMemAllocator::SetProperties

Il metodo SetProperties specifica il numero di buffer da allocare e le dimensioni di ogni buffer.

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)