Функция KsFreeEventList (ks.h)

Функция KsFreeEventList обрабатывает освобождение всех событий из указанного списка с предположением, что эти события состоят из KSEVENT_ENTRY структур. Эту функцию можно вызывать только в PASSIVE_LEVEL.

Синтаксис

KSDDKAPI VOID KsFreeEventList(
  [in]      PFILE_OBJECT      FileObject,
  [in, out] PLIST_ENTRY       EventsList,
  [in]      KSEVENTS_LOCKTYPE EventsFlags,
  [in]      PVOID             EventsLock
);

Параметры

[in] FileObject

Указывает объект файла, переданный функции удаления для контекстных сведений. Связанный объект файла используется для сравнения с объектом файла, изначально указанным при включении события. Это позволяет использовать один список событий для нескольких клиентов, различаемых объектами файлов.

[in, out] EventsList

Указывает на заголовок списка KSEVENT_ENTRY элементов, которые необходимо освободить. Если какие-либо события в списке в настоящее время отключены, они передаются. Если какие-либо новые элементы добавляются в список во время его обработки, они могут не быть освобождены.

[in] EventsFlags

Задает флаг KSEVENTS_LOCKTYPE , указывающий тип блокировки исключения, используемой при доступе к списку событий. Если флаг не установлен, блокировка не применяется.

[in] EventsLock

Используется для синхронизации доступа к элементу в списке. После доступа к элементу он помечается как удаляемый, поэтому последующие запросы на удаление завершаются ошибкой. Затем блокировка освобождается после вызова функции удаления, если она имеется. Функция удаления должна синхронизироваться с созданием событий перед фактическим удалением элемента из списка.

Возвращаемое значение

None

Remarks

Функция KsFreeEventList вызывает обработчик удаления, а затем вызывает KsDiscardEvent для каждого события. В нем не предполагается, что вызывающий объект является владельцем события.

Требования

Требование Значение
Целевая платформа Универсальное
Верхняя часть ks.h (включая Ks.h)
Библиотека Ks.lib

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

KsDiscardEvent