Функция 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

См. также раздел

KsFastPropertyHandler

KsPropertyHandlerWithAllocator