Metodo CBaseAllocator.SetProperties
[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 SetProperties
metodo specifica il numero di buffer da allocare e le dimensioni di ogni buffer. Questo metodo implementa il metodo IMemAllocator::SetProperties .
Sintassi
HRESULT SetProperties(
ALLOCATOR_PROPERTIES *pRequest,
ALLOCATOR_PROPERTIES *pActual
);
Parametri
-
pRequest
-
Puntatore a una struttura ALLOCATOR_PROPERTIES che contiene i requisiti del buffer.
-
pActual
-
Puntatore a una struttura ALLOCATOR_PROPERTIES che riceve le proprietà effettive del buffer.
Valore restituito
Restituisce uno dei valori HRESULT seguenti.
Codice restituito | Descrizione |
---|---|
|
Operazione completata. |
|
Argomento puntatore NULL. |
|
Impossibile modificare la memoria allocata mentre il filtro è attivo. |
|
È stato specificato un allineamento non valido. |
|
Uno o più buffer sono ancora attivi. |
Commenti
Questo metodo specifica i requisiti del buffer, ma non alloca buffer. Chiamare il metodo CBaseAllocator::Commit per allocare i buffer.
Il chiamante alloca due strutture ALLOCATOR_PROPERTIES. Il parametro pRequest contiene i requisiti del buffer del chiamante, inclusi il numero di buffer e le dimensioni di ogni buffer. Quando il metodo viene restituito, il parametro pActual contiene le proprietà effettive del buffer, come impostato dall'allocatore. Nella classe base, supponendo che il metodo abbia esito positivo, le proprietà effettive corrispondono sempre alle proprietà richieste. Le classi derivate potrebbero eseguire l'override di questo comportamento.
L'allocatore non deve essere eseguito il commit e non deve avere buffer in sospeso. Nella classe base l'allineamento deve essere uguale a 1. La classe CMemAllocator esegue l'override di questo requisito.
Requisiti
Requisito | Valore |
---|---|
Intestazione |
|
Libreria |
|