IPinConnection::NotifyEndOfStream 方法 (strmif.h)

[与此页面关联的功能 DirectShow 是旧版功能。 它已被 MediaPlayerIMFMediaEngineMedia Foundation 中的音频/视频捕获所取代。 这些功能已针对Windows 10和Windows 11进行了优化。 Microsoft 强烈建议新代码尽可能在 Media Foundation 中使用 MediaPlayerIMFMediaEngine音频/视频捕获 ,而不是 DirectShow。 如果可能,Microsoft 建议重写使用旧 API 的现有代码以使用新 API。]

方法 NotifyEndOfStream 在发生下一个流结束条件时从引脚请求通知。

语法

HRESULT NotifyEndOfStream(
  [in] HANDLE hNotifyEvent
);

参数

[in] hNotifyEvent

图钉将发出信号的事件对象的句柄。

返回值

返回 HRESULT 值。 可能的值包括以下值。

返回代码 说明
S_FALSE
事件句柄为 NULL,但没有要重置的现有事件句柄。
S_OK
已设置事件句柄。 (如果事件句柄为 NULL,则取消事件通知。)

注解

此方法使调用方能够通过以此引脚结尾的筛选器图的一部分推送数据。

例如,假设调用方将数据从一个筛选器上名为“A”的输出引脚推送到另一个筛选器上的名为“B”的输入引脚,可能还有中间筛选器连接它们。 将发生以下事件序列。

  1. 调用方阻止引脚 A 处的数据流。
  2. 它在引脚 B 上调用 NotifyEndOfStream
  3. 它在连接到引脚 A 的输入引脚上调用 IPin::EndOfStream
  4. 当剩余数据通过任何中间筛选器向下游传输时,这些筛选器会传播流结束通知。
  5. 当引脚 B 收到流结束通知时,它会向 hNotifyEvent 参数中给定的事件发出信号。 此时,调用方可以安全地重新配置引脚 A 和引脚 B 之间的图形。
由于此方法的目的是使调用方能够动态地重新生成图形,然后重启连接,因此流结束通知不表示流的实际结束。 因此,引脚 B 不会传播流结束条件或信号EC_COMPLETE。 这是筛选器图中数据流的常见规则的例外。

调用方有责任使用 NULL 事件句柄再次调用此方法来取消通知。

筛选器图在 IGraphConfig::Reconnect 方法中调用此方法。 如果应用程序或筛选器使用 IGraphConfig::Reconfigure 方法) 对图形 (执行任何专用的动态重新配置,则它可能会首先调用此方法,以便将数据推送到正在重新配置的图形部分。

要求

要求
最低受支持的客户端 Windows XP [仅限桌面应用]
最低受支持的服务器 Windows Server 2003 [仅限桌面应用]
目标平台 Windows
标头 strmif.h (包括 Dshow.h)
Library Strmiids.lib

另请参阅

动态重新连接

错误和成功代码

IPinConnection 接口