Функция 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-Tail.Overlay.DriverContext> в IRP. Мини-диск может использовать макрос KSPROPERTY_SET_IRP_STORAGE, определенный в ks.h, для доступа к этому указателю.
Требования
Требование | Значение |
---|---|
Целевая платформа | Универсальное |
Верхняя часть | ks.h (включая Ks.h) |
Библиотека | Ks.lib |