Функция KsDisableEvent (ks.h)
Функция KsDisableEvent отключает события, запрашиваемые с помощью IOCTL_KS_DISABLE_EVENT. Он реагирует на все события, ранее включенные с помощью KsEnableEvent. Если длина входного буфера равна нулю, предполагается, что все события в списке должны быть отключены. Эту функцию можно вызывать только в PASSIVE_LEVEL.
Синтаксис
KSDDKAPI NTSTATUS KsDisableEvent(
[in] PIRP Irp,
[in, out] PLIST_ENTRY EventsList,
[in] KSEVENTS_LOCKTYPE EventsFlags,
[in] PVOID EventsLock
);
Параметры
[in] Irp
Указывает IRP, передаваемую функции удаления, которая использует IRP для получения сведений о контексте. Объект файла, связанный с IRP, используется для сравнения с исходным объектом файла, указанным при включении события. Это позволяет использовать один список событий для нескольких клиентов, различаемых по объектам файлов.
[in, out] EventsList
Указывает на главу списка KSEVENT_ENTRY элементов, в которых можно найти событие. Если клиент использует несколько списков событий и не знает, в каком списке находится это событие, клиент может вызывать эту функцию несколько раз. Событие не найдено возвращает STATUS_UNSUCCESSFUL.
[in] EventsFlags
Задает флаг KSEVENTS_LOCKTYPE , указывающий тип блокировки исключения, используемой при доступе к списку событий. Если флаг не установлен, блокировка не выполняется.
[in] EventsLock
Используется для синхронизации доступа к элементу в списке. После доступа к элементу он помечается как удаляемый, чтобы последующие запросы на удаление завершились ошибкой. Затем блокировка освобождается после вызова функции удаления, если таковой имеется. Функция удаления должна синхронизироваться с созданием событий перед фактическим удалением элемента из списка.
Возвращаемое значение
Функция KsDisableEvent возвращает STATUS_SUCCESS в случае успешного выполнения или ошибку, относясь к включенной событию. Функция всегда задает IO_STATUS_BLOCK. Информационное поле ПИРП. Элемент IoStatus в IRP равен нулю. Он не задает IO_STATUS_BLOCK. Поле состояния и не завершает IRP.
Комментарии
Важно синхронизировать обработчик удаления с созданием событий, чтобы при удалении события из списка оно не обслуживалось. Предполагается, что доступ к этому списку контролируется с помощью переданной блокировки.
Требования
Требование | Значение |
---|---|
Целевая платформа | Универсальное |
Верхняя часть | ks.h (включая Ks.h) |
Библиотека | Ks.lib |