Función KsPropertyHandler (ks.h)

Los controladores llaman a la función KsPropertyHandler para controlar IRP.

Sintaxis

KSDDKAPI NTSTATUS KsPropertyHandler(
  [in] PIRP                 Irp,
  [in] ULONG                PropertySetsCount,
  [in] const KSPROPERTY_SET *PropertySet
);

Parámetros

[in] Irp

Especifica el IRP con la solicitud de propiedad que se está administrando.

[in] PropertySetsCount

Especifica el número de conjuntos de propiedades que se pasan.

[in] PropertySet

Apunta a una matriz de estructuras de KSPROPERTY_SET . El controlador debe proporcionar una estructura para cada conjunto de propiedades que quiere que KsPropertyHandler controle.

Valor devuelto

La función KsPropertyHandler devuelve STATUS_SUCCESS si se ejecuta correctamente o un error específico de la propiedad que se está controlando si no se realiza correctamente. La función establece el irP-IO_STATUS_BLOCK>. Miembro de información, ya sea estableciendo en cero debido a un error interno o a través de un controlador de propiedades que lo establece. La función no establece el miembro lrp-IoStatus.Status> ni completa el IRP.

Comentarios

KsPropertyHandler responde a todos los identificadores de propiedad definidos por los conjuntos y solo se puede llamar a en PASSIVE_LEVEL.

Cada entrada KSPROPERTY_SET contiene un puntero a una matriz de estructuras de KSPROPERTY_ITEM en su miembro PropertyItem. Para el procesamiento específico del controlador, KsPropertyHandler entrega cada solicitud a una de las devoluciones de llamada proporcionadas por el controlador en PropertyItem. KsPropertyHandler se encarga de cualquier procesamiento irP necesario.

KsPropertyHandler no usa el miembro FastIoTable de su estructura de KSPROPERTY_SET . Si el controlador necesita admitir el control de E/S rápido de las solicitudes, se debe pasar la misma estructura de KSPROPERTY_SET a la rutina KsFastPropertyHandler.

El propietario de los conjuntos de propiedades puede realizar el filtrado previo o postfiltro del control de propiedades. Las excepciones de acceso a la estructura de propiedades básicas se controlan mediante la función KsPropertyHandler , aunque la limpieza de excepciones específicas debe estar cubierta por el controlador de propiedades.

KsPropertyHandler coloca un puntero a la estructura de KSPROPERTY_SET pertinente en el parámetro Irp-Tail.Overlay.DriverContext> del IRP. El minidriver puede usar la macro KSPROPERTY_SET_IRP_STORAGE, definida en ks.h, para acceder a este puntero.

Requisitos

Requisito Value
Plataforma de destino Universal
Encabezado ks.h (incluya Ks.h)
Library Ks.lib

Consulte también

KsFastPropertyHandler

KsPropertyHandlerWithAllocator