Поделиться через


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

См. также

KsFastPropertyHandler

KsPropertyHandlerWithAllocator