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
用于同步对列表上元素的访问。 访问该元素后,将它标记为正在删除,以便后续删除请求失败。 然后,调用删除函数(如果有)后释放锁。 删除函数必须与事件生成同步,然后才能从列表中实际删除元素。
返回值
没有
言论
KsFreeEventList 函数调用删除处理程序,然后为每个事件调用 KsDiscardEvent。 它不假定调用方是事件所有者。
要求
要求 | 价值 |
---|---|
目标平台 | 普遍 |
标头 | ks.h (包括 Ks.h) |
库 | Ks.lib |