IPinConnection::NotifyEndOfStream 메서드(strmif.h)

[이 페이지와 연결된 기능인 DirectShow는 레거시 기능입니다. MediaPlayer, IMFMediaEngineMedia Foundation의 오디오/비디오 캡처로 대체되었습니다. 이러한 기능은 Windows 10 및 Windows 11 최적화되었습니다. 가능한 경우 새 코드에서 DirectShow 대신 MediaPlayer, IMFMediaEngine오디오/비디오 캡처를 사용하는 것이 좋습니다. 가능한 경우 레거시 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 포함)
라이브러리 Strmiids.lib

추가 정보

동적 다시 연결

오류 및 성공 코드

IPinConnection 인터페이스