Condividi tramite


Interfaccia IKsInterfaceHandler (ksproxy.h)

L'interfaccia IKsInterfaceHandler fornisce metodi che eseguono il marshalling di esempi nel kernel in base alla struttura KSPIN_INTERFACE specificata per la connessione stabilita. L'IID per questa interfaccia è IID_IKsInterfaceHandler.

Ereditarietà

L'interfaccia IKsInterfaceHandler eredita dall'interfaccia IUnknown .

Metodi

L'interfaccia IKsInterfaceHandler include questi metodi.

 
IKsInterfaceHandler::KsCompleteIo

Il metodo KsCompleteIo pulisce le intestazioni estese e rilascia esempi multimediali al termine dell'input e dell'output (I/O).
IKsInterfaceHandler::KsProcessMediaSamples

Il metodo KsProcessMediaSamples elabora esempi multimediali.
IKsInterfaceHandler::KsSetPin

Il metodo KsSetPin informa il gestore dell'interfaccia di streaming sul pin con cui comunicare durante il passaggio dei dati.

Commenti

Per mantenere il proxy neutro rispetto all'interfaccia usata per trasmettere i dati, i gestori di interfaccia vengono caricati per convertire gli esempi di supporti DirectShow in e da un driver a livello di kernel. Un gestore di interfaccia implementa i metodi dell'interfaccia IKsInterfaceHandler per eseguire la pre-elaborazione e la post-elaborazione in tutti i campioni multimediali e per segnalare il completamento dell'input e dell'output (I/O).

Ogni gestore di interfaccia può effettuare il marshalling di esempi di supporti usando un metodo specifico. Il gestore di interfaccia standard implementato dal proxy KS usa IOCTL_KS_WRITE_STREAM per l'operazione di ricezione e IOCTL_KS_READ_STREAM per l'operazione di invio, ma un gestore di interfaccia personalizzato può usare un altro metodo.

Quando un pin è connesso, il proxy usa il GUID nel membro Set della struttura KSPIN_INTERFACE per determinare quale gestore di interfaccia caricare. Il gestore di interfaccia viene registrato come server COM nella classe GUID. Il gestore dell'interfaccia deve gestire tutte le varianti dell'interfaccia all'interno del set di interfacce. I pin del bridge non sono previsti per lo streaming dei dati e i gestori di interfaccia non vengono caricati per loro.

In un gestore di interfaccia creare una richiesta tramite CoCreateInstance, il server viene sempre presentato un IUnknown esterno con cui creare l'oggetto COM. Questo IUnknown è un'interfaccia sull'oggetto pin che sta caricando questo gestore di interfaccia. Il puntatore all'interfaccia IUnknown può essere usato per eseguire query su informazioni o interfacce, ad esempio l'interfaccia IKsControl , dal pin, anche se il pin in modalità kernel potrebbe non essere stato creato al momento del caricamento del gestore dell'interfaccia. Nessun riferimento deve essere lasciato sull'oggetto esterno tramite l'acquisizione di interfacce, in quanto comporterà un conteggio di riferimenti circolari. L'utilizzo delle interfacce senza un conteggio dei riferimenti è accettabile perché l'oggetto esterno possiede il gestore e, per definizione, viene eliminato definitivamente quando il conteggio dei riferimenti dell'oggetto esterno raggiunge zero.

Requisiti

Requisito Valore
Piattaforma di destinazione Windows
Intestazione ksproxy.h

Vedi anche

Cocreateinstance

IKsControl

KSPIN_INTERFACE