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