Функция KsPropertyHandler (ks.h)
Драйверы вызывают функцию KsPropertyHandler для обработки IRP.
Синтаксис
KSDDKAPI NTSTATUS KsPropertyHandler(
[in] PIRP Irp,
[in] ULONG PropertySetsCount,
[in] const KSPROPERTY_SET *PropertySet
);
Параметры
[in] Irp
Задает IRP с обрабатываемыми запросами свойств.
[in] PropertySetsCount
Указывает количество передаваемых наборов свойств.
[in] PropertySet
Указывает на массив структур KSPROPERTY_SET. Драйвер должен предоставить одну структуру для каждого набора свойств, чтобы он хотел обрабатывать KsPropertyHandler.
Возвращаемое значение
Функция KsPropertyHandler возвращает STATUS_SUCCESS в случае успешного выполнения или ошибку, определяемую свойством при неудачном выполнении. Функция задает IRP—>IO_STATUS_BLOCK. Элемент сведений либо путем задания нуля из-за внутренней ошибки, либо с помощью обработчика свойств. Функция не задает элемент lrp->IoStatus.Status и не завершает IRP.
Замечания
KsPropertyHandler реагирует на все идентификаторы свойств, определенные наборами, и может вызываться только в PASSIVE_LEVEL.
Каждая запись KSPROPERTY_SET содержит указатель на массив структур KSPROPERTY_ITEM в элементе PropertyItem. Для обработки для конкретного драйвера KsPropertyHandler передает каждый запрос одному из предоставленных драйвером обратных вызовов в PropertyItem. KsPropertyHandler заботится о любой обработке IRP.
KsPropertyHandler не использует элемент FastIoTable своей KSPROPERTY_SET структуры. Если драйверу требуется поддержка быстрой обработки запросов ввода-вывода, то в подпрограмму KsFastPropertyHandler необходимо передать ту же KSPROPERTY_SET структуру.
Владелец наборов свойств может выполнять префильтровку или послефильтровку обработки свойств. Основные исключения доступа к структуре свойств обрабатываются функцией KsPropertyHandler , хотя очистка для определенных исключений должна охватываться обработчиком свойств.
KsPropertyHandler помещает указатель на соответствующую структуру KSPROPERTY_SET в параметре IRP Irp->Tail.Overlay.DriverContext. Мини-driver может использовать макрос KSPROPERTY_SET_IRP_STORAGE, определенный в ks.h, для доступа к этому указателю.
Требования
Требование | Ценность |
---|---|
целевая платформа | Всеобщий |
заголовка | ks.h (include Ks.h) |
библиотеки | Ks.lib |