Proprietà KS

Una proprietà rappresenta un'impostazione di funzionalità o di stato del controllo che appartiene a un oggetto di streaming del kernel, ad esempio un filtro o un pin. I client di un minidriver di streaming del kernel possono inviare richieste di proprietà get e set (KSPROPERTY_TYPE_GET e KSPROPERTY_TYPE_SET) ai filtri e ai pin di cui è stata creata un'istanza del minidriver. Un gruppo di proprietà correlate viene definito set di proprietà.

Per ottenere o impostare singole proprietà, i client in modalità utente chiamano la funzione Win32 DeviceIoControl con il parametro dwIoControlCode impostato su IOCTL_KS_PROPERTY. DeviceIoControl è descritto nella documentazione di Microsoft Windows SDK. I client in modalità kernel devono chiamare KsSynchronousDeviceControl.

Il buffer di input è una struttura KSPROPERTY o un wrapper contenente una struttura KSPROPERTY e altre informazioni rilevanti per la richiesta. In risposta a questa chiamata, il sistema operativo invia un IRP al driver di classe.

Quando il driver di classe riceve l'IRP risultante, chiama KsPropertyHandler. Il driver di classe include come parametro di chiamata l'indirizzo della struttura KSPROPERTY che identifica le specifiche della richiesta di proprietà. La richiesta di proprietà viene gestita automaticamente a livello di driver di classe o da un gestore fornito da minidriver. Per informazioni di riferimento, inclusi i set di proprietà gestiti dal driver di classe e che richiedono gestori forniti da minidriver, vedere Kernel Streaming Property Sets (Set di proprietà di streaming kernel). Un minidriver può eseguire l'override o aumentare il gestore driver di classe fornendo callback per una proprietà gestita per impostazione predefinita dal driver di classe.

Se il minidriver ha fornito gestori per questa proprietà, KsPropertyHandler disattiva la richiesta al callback fornito dal minidriver appropriato.

Un minidriver fornisce puntatori ai relativi callback di supporto delle proprietà in una struttura di tipo KSPROPERTY_ITEM. Un minidriver raggruppa una matrice di strutture KSPROPERTY_ITEM correlate in una struttura KSPROPERTY_SET . Diversi modelli di driver di classe hanno metodi leggermente diversi per il minidriver per rendere disponibili i dati del set di proprietà per il driver di classe. È possibile trovare informazioni specifiche del driver di classe seguendo i collegamenti in Kernel Streaming.

Il minidriver fornisce anche un puntatore a una struttura KSPROPERTY_VALUES in una struttura KSPROPERTY_ITEM. La struttura KSPROPERTY_VALUES a sua volta contiene una matrice di strutture KSPROPERTY_MEMBERSLIST . In questo caso il minidriver specifica le dimensioni e il tipo di valori accettabili per la proprietà. Ogni struttura KSPROPERTY_MEMBERSLIST contiene un membro di intestazione: vedere KSPROPERTY_MEMBERSHEADER Per informazioni su come specificare intervalli o valori legali per una proprietà supportata dal minidriver. È anche possibile trovare un'implementazione di questo meccanismo nell'esempio Testcap in Microsoft Windows Driver Kit (WDK).

Per segnalare le dimensioni e il tipo di valori accettabili per una proprietà, il driver di classe restituisce una struttura KSPROPERTY_DESCRIPTION in risposta a una richiesta di KSPROPERTY_TYPE_BASICSUPPORT dal client.

Il driver di classe può aggiungere un elenco di strutture KSPROPERTY_MEMBERSHEADER alla struttura KSPROPERTY_DESCRIPTION.