Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Una propiedad representa una configuración de funcionalidad o estado de control que pertenece a un objeto de streaming de kernel, como un filtro o una patilla. Los clientes de un minidriver de streaming de kernel pueden enviar solicitudes de obtención y establecimiento de propiedades (KSPROPERTY_TYPE_GET y KSPROPERTY_TYPE_SET) a los filtros y pines que ha instanciado el minidriver. Un grupo de propiedades relacionadas se conoce como un conjunto de propiedades.
Para obtener o establecer propiedades individuales, los clientes en modo de usuario llaman a la función Win32 DeviceIoControl con el parámetro dwIoControlCode establecido en IOCTL_KS_PROPERTY. DeviceIoControl se describe en la documentación del SDK de Microsoft Windows. Los clientes en modo kernel deben llamar a KsSynchronousDeviceControl.
El búfer de entrada es una estructura KSPROPERTY o un contenedor que contiene una estructura KSPROPERTY y otra información relevante para la solicitud. En respuesta a esta llamada, el sistema operativo envía un IRP al controlador de clase.
Cuando el controlador de clase recibe el IRP resultante, llama a KsPropertyHandler. El controlador de clase incluye como parámetro de llamada la dirección de la estructura KSPROPERTY que identifica los detalles de la solicitud de propiedad. La solicitud de propiedad se maneja automáticamente a nivel de controlador de clase o mediante un manejador proporcionado por el minidriver. Consulte Conjuntos de propiedades de streaming de kernel para obtener información de referencia, incluidos los conjuntos de propiedades que administra el controlador de clase y que requieren controladores proporcionados por el minidriver. Un minidriver puede sobrescribir o ampliar el controlador de clase proporcionando devoluciones de llamada para una propiedad que, por defecto, es gestionada por el controlador de clase.
Si el minidriver ha proporcionado controladores para esta propiedad, KsPropertyHandler a su vez entrega la solicitud a la devolución de llamada proporcionada por el minidriver adecuado.
Un minidriver proporciona punteros a sus callbacks compatibles con propiedades en una estructura de tipo KSPROPERTY_ITEM. Un minidriver agrupa una matriz de estructuras relacionadas de KSPROPERTY_ITEM en una estructura KSPROPERTY_SET. Los diferentes modelos de controladores de clase tienen métodos ligeramente diferentes para que el minidriver haga que los datos del conjunto de propiedades estén disponibles para el controlador de clase. Puede encontrar información específica del controlador de clase siguiendo los vínculos de Kernel Streaming.
El minidriver también proporciona un puntero a una estructura KSPROPERTY_VALUES en una estructura KSPROPERTY_ITEM. La estructura KSPROPERTY_VALUES a su vez contiene una matriz de estructuras KSPROPERTY_MEMBERSLIST . Aquí es el lugar donde el minidriver especifica el tamaño y el tipo de valores aceptables para la propiedad. Cada estructura de KSPROPERTY_MEMBERSLIST contiene un miembro de encabezado: vea KSPROPERTY_MEMBERSHEADER Para obtener información sobre cómo especificar rangos o valores legales para una propiedad compatible con el minidriver. También puede encontrar una implementación de este mecanismo en el ejemplo Testcap del Kit de controladores de Microsoft Windows (WDK).
Para notificar el tamaño y el tipo de valores aceptables para una propiedad, el controlador de clase devuelve una estructura de KSPROPERTY_DESCRIPTION en respuesta a una solicitud de KSPROPERTY_TYPE_BASICSUPPORT del cliente.
El controlador de clase puede anexar una lista de estructuras de KSPROPERTY_MEMBERSHEADER a la estructura KSPROPERTY_DESCRIPTION.