Metodo IAsyncReader::RequestAllocator (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.

Il RequestAllocator metodo richiede un allocatore durante la connessione pin.

Sintassi

HRESULT RequestAllocator(
  [in]  IMemAllocator        *pPreferred,
  [in]  ALLOCATOR_PROPERTIES *pProps,
  [out] IMemAllocator        **ppActual
);

Parametri

[in] pPreferred

Puntatore all'interfaccia IMemAllocator nel pin di input preferito o NULL.

[in] pProps

Specifica l'indirizzo di una struttura ALLOCATOR_PROPERTIES allocata dal chiamante. Il chiamante deve compilare tutte le proprietà dell'allocatore necessarie per il pin di input e impostare i membri rimanenti su zero.

[out] ppActual

Indirizzo di una variabile che riceve un puntatore dell'interfaccia IMemAllocator .

Valore restituito

Restituisce un valore HRESULT . Di seguito sono indicati alcuni valori possibili.

Codice restituito Descrizione
E_FAIL
Impossibile inizializzare un allocatore.
VFW_E_BADALIGN
È stato specificato un allineamento non valido.
S_OK
L'allocatore è stato restituito.

Commenti

Il pin di input downstream deve chiamare questo metodo durante il processo di connessione. Se il pin ha un allocatore preferito, specificarlo nel parametro pPreferred . Specificare eventuali requisiti del buffer, ad esempio dimensioni del buffer o allineamento, nel parametro pProps . Il pin di output sceglie l'allocatore e restituisce un puntatore al parametro ppActual .

Il pin di output non è necessario per rispettare le richieste del pin di input. Se il pin di input ha requisiti assoluti, deve chiamare il metodo IMemAllocator::GetProperties nell'allocatore restituito. Può non riuscire la connessione se le proprietà dell'allocatore non sono adatte. Dopo aver stabilito la connessione, il pin di input deve usare l'allocatore scelto dal pin di output.

Il pin di input è responsabile del commit e del decommettere l'allocatore.

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 errore e esito positivo

Interfaccia IAsyncReader