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: