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。PIRP 的信息字段。IRP 中的 IoStatus 元素为零。 它未设置IO_STATUS_BLOCK。状态字段,也不会完成 IRP。
言论
删除处理程序必须与事件生成同步,以确保从列表中删除事件时,当前不会对其进行服务。 假定使用传递的锁控制对此列表的访问。
要求
要求 | 价值 |
---|---|
目标平台 | 普遍 |
标头 | ks.h (包括 Ks.h) |
库 | Ks.lib |