Propiedades, eventos y métodos de KS
La arquitectura de streaming de kernel admite la interacción entre los minidrivers y los clientes en modo de usuario a través de propiedades, eventos y métodos. Con estas construcciones, los clientes de un objeto KS pueden obtener y establecer el estado del objeto, registrar devoluciones de llamada de notificación para eventos y ejecutar métodos de objeto.
Los clientes solicitan las tres clases de operación de una manera estandarizada. El cliente proporciona una estructura de alias de KSIDENTIFIER en una llamada a DeviceIoControl (que se describe en la documentación de Microsoft Windows SDK) o KsSynchronousDeviceControl.
Las estructuras de alias son KSPROPERTY, KSEVENT y KSMETHOD. Los tres incluyen los siguientes parámetros:
Establecimiento
Las operaciones funcionalmente similares se agrupan en un conjunto. Cada propiedad, evento o conjunto de métodos se identifica mediante un GUID. Microsoft define GUID para operaciones estándar específicas de la tecnología. Los minidrivers pueden definir sus propios GUID para las operaciones personalizadas.
Identificador
Cada operación se especifica mediante un número de identificador dentro del conjunto.
Datos de identificación específicos de la operación
Algunas solicitudes de propiedad requieren datos adicionales. Por ejemplo, las patillas de un dispositivo de audio admiten el conjunto de propiedades KSPROPSETID_Audio . Un pin de audio puede admitir varios canales de audio diferentes. Los clientes que obtienen o establecen determinadas propiedades de KSPROPSETID_Audio deben especificar el canal de audio al que se aplica la solicitud. Las solicitudes de eventos y métodos no requieren datos adicionales.
Los GUID y identificadores de conjunto definidos por Microsoft para las operaciones de uso general se encuentran en el encabezado ks.h. Los GUID estándar e identificadores de determinadas clases de tecnología multimedia se encuentran en ksmedia.h.
Los minidrivers avStream admiten propiedades, eventos y métodos proporcionando un puntero a una estructura de KSAUTOMATION_TABLE en el KSFILTER_DESCRIPTOR o KSPIN_DESCRIPTOR_EX pertinentes. Un KSAUTOMATION_TABLE contiene un puntero a una matriz de objetos KSPROPERTY_SET . Para más información, consulte Definición de tablas de Automatización.
Estas secciones contienen información sobre cómo los minidrivers admiten las tres clases de operación: