KsFilterGenerateEvents 函数 (ks.h)
KsFilterGenerateEvents 函数生成 Filter事件列表中存在的指示类型的事件。
语法
void KsFilterGenerateEvents(
[in] PKSFILTER Filter,
[in, optional] const GUID *EventSet,
[in] ULONG EventId,
[in] ULONG DataSize,
[in] PVOID Data,
[in, optional] PFNKSGENERATEEVENTCALLBACK CallBack,
[in, optional] PVOID CallBackContext
);
参数
[in] Filter
指向 KSFILTER 结构的指针,用于生成事件。
[in, optional] EventSet
指向要匹配的事件集 GUID 的指针,用于确定要生成的事件。 如果此参数 NULL,则不会考虑事件集 GUID 来确定匹配事件。
[in] EventId
要匹配的事件 ID,用于确定要生成的事件。
[in] DataSize
数据 的大小(以字节为单位)。
[in] Data
指向数据缓冲区的指针。 指定是否生成数据事件。
[in, optional] CallBack
指向调用方指定的函数的指针,该函数用于确定是否应生成给定事件。 如果这是 NULL,则不执行回调验证以确定是否应生成事件(仅使用 *EventSet *和 EventId)。 有关详细信息,请参阅下面的“备注”部分。
[in, optional] CallBackContext
指向调用方指定的上下文的可选指针,该上下文传递给回调函数 CallBack。 有关详细信息,请参阅下面的“备注”部分。
返回值
没有
言论
调用此函数时,微型驱动程序必须将 数据 并 CallBackContext 置于锁定的不可分页的数据段中。 此外,请注意,CallBack 是在DISPATCH_LEVEL进行的。 回调函数必须位于锁定的段中,并且必须准备好在 IRQL = DISPATCH_LEVEL运行。 请注意,DX8 只有存在其他问题:EventSet 必须位于锁定的数据段中。
这是对 KsGenerateEvents 执行必要类型转换的内联函数调用。 微型驱动程序通常应调用此版本,而不是直接调用 KsGenerateEvents。
如果满足以下条件,将生成事件:
该事件存在于 Filter的事件列表中,EventId 与事件的 ID 匹配
EventSet 匹配事件的设置 GUID 或 NULL
CallBack 为 null 或授权匹配
CallBack 是用于其他匹配确定的调用方指定的回调。 其原型如下:
BOOLEAN CallBack (IN PVOID Context, IN PKSEVENT_ENTRY EventEntry);
AVStream 在此回调的 Context 参数中传递 KsFilterGenerateEvents 例程的参数 CallBackContext 的内容。 EventEntry 是指向指定要生成的事件的 KSEVENT_ENTRY 结构的指针。 如果应生成此事件,回调函数应返回 TRUE。
有关详细信息,请参阅 AVStream 和 KS 事件中的 事件处理。
要求
要求 | 价值 |
---|---|
最低支持的客户端 | Microsoft Windows XP 及更高版本的作系统以及 DirectX 8.0 及更高版本的 DirectX 版本中提供。 |
目标平台 | 桌面 |
标头 | ks.h (包括 Ks.h) |
库 | Ks.lib |
IRQL | <=DISPATCH_LEVEL(请参阅“备注”部分)。 |