KsFilterGenerateEvents 函数 (ks.h)

KsFilterGenerateEvents 函数生成筛选器事件列表中存在的指示类型的事件。

语法

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 的调用方指定上下文的可选指针。 有关详细信息,请参阅下面的“备注”部分。

返回值

备注

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

这是对 KsGenerateEvents 的内联函数调用,用于执行必要的类型转换。 微型驱动程序通常应调用此版本,而不是直接调用 KsGenerateEvents

如果满足以下条件,则生成事件:

  • 事件存在于 筛选器的事件列表中, EventId 与事件的 ID 匹配

  • EventSet 与事件设置的 GUID 匹配或为 NULL

  • CallBackNULL 或授权匹配

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)
Library Ks.lib
IRQL <=DISPATCH_LEVEL (请参阅备注部分。)

另请参阅

KSEVENT_ENTRY

KsAddEvent

KsGenerateEvents

KsPinGenerateEvents