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 筛选器或 pin 对象。

[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

返回值

没有

言论

调用此函数时,微型驱动程序必须将 数据CallBackContext 置于锁定的不可分页的数据段中。 此外,请注意,CallBack 是在DISPATCH_LEVEL进行的。 回调函数必须位于锁定的段中,并且必须准备好在 IRQL = DISPATCH_LEVEL运行。 请注意,DX8 只有存在其他问题:EventSet 必须位于锁定的数据段中。

微型驱动程序通常不直接调用此函数,而是使用执行适当强制转换的版本之一:KsFilterGenerateEventsKsPinGenerateEvents

如果事件存在于 *Object 的 *事件列表中,并且 *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)
Ks.lib
IRQL <=DISPATCH_LEVEL

另请参阅

KSEVENT_ENTRY

KsAddEvent

KsFilterGenerateEvents

KsPinGenerateEvents