Proprietà, eventi e metodi KS

L'architettura di streaming del kernel supporta l'interazione tra minidriver e client in modalità utente tramite proprietà, eventi e metodi. Usando questi costrutti, i client di un oggetto KS possono ottenere e impostare lo stato dell'oggetto, registrare i callback di notifica per gli eventi ed eseguire metodi oggetto.

I client richiedono tutte e tre le classi di operazione in modo standardizzato. Il client fornisce una struttura alias di KSIDENTIFIER in una chiamata a DeviceIoControl (descritta nella documentazione di Microsoft Windows SDK) o KsSynchronousDeviceControl.

Le strutture alias sono KSPROPERTY, KSEVENT e KSMETHOD. Tutti e tre includono i parametri seguenti:

  • Set

    Le operazioni funzionalmente simili vengono raggruppate in un set. Ogni proprietà, evento o set di metodi viene identificato da un GUID. Microsoft definisce GUID per operazioni specifiche della tecnologia standard. I minidriver possono definire i propri GUID per le operazioni personalizzate.

  • Identificatore

    Ogni operazione viene specificata da un numero ID all'interno del set.

  • Dati di identificazione specifici dell'operazione

    Alcune richieste di proprietà richiedono dati aggiuntivi. Ad esempio, i pin in un dispositivo audio supportano il set di proprietà KSPROPSETID_Audio. Un pin audio può supportare diversi canali audio. I client che ottengono o impostano determinate proprietà KSPROPSETID_Audio devono specificare il canale audio a cui si applica la richiesta. Le richieste di eventi e metodi non richiedono dati aggiuntivi.

I GUID e gli identificatori definiti da Microsoft per le operazioni per utilizzo generico si trovano nell'intestazione ks.h. I GUID e gli identificatori standard per le classi specifiche della tecnologia multimediale sono disponibili in ksmedia.h.

I minidriver AVStream supportano proprietà, eventi e metodi fornendo un puntatore a una struttura KSAUTOMATION_TABLE nell'KSFILTER_DESCRIPTORpertinente oKSPIN_DESCRIPTOR_EX. Un KSAUTOMATION_TABLE contiene un puntatore a una matrice di oggetti KSPROPERTY_SET . Per altre informazioni, vedere Definizione delle tabelle di automazione.

Queste sezioni contengono informazioni su come i minidriver supportano le tre classi di operazione:

Proprietà KS

Eventi KS

Metodi KS