다음을 통해 공유


IAMDevMemoryControl::WriteSync 메서드(strmif.h)

[이 페이지와 연결된 기능인 DirectShow는 레거시 기능입니다. MediaPlayer, IMFMediaEngineMedia Foundation의 오디오/비디오 캡처로 대체되었습니다. 이러한 기능은 Windows 10 및 Windows 11 최적화되었습니다. 가능한 경우 새 코드에서 DirectShow 대신 MediaPlayer, IMFMediaEngine오디오/비디오 캡처를 사용하는 것이 좋습니다. 가능한 경우 레거시 API를 사용하는 기존 코드를 다시 작성하여 새 API를 사용하도록 제안합니다.]

참고IAMDevMemoryControl 인터페이스는 더 이상 사용되지 않습니다.
 
완료된 쓰기와 동기화하는 데 사용됩니다. 이 메서드는 특정 할당자 영역에 기록되는 모든 데이터가 메모리에 완전히 기록될 때 를 반환합니다.

구문

HRESULT WriteSync();

반환 값

HRESULT 값을 반환합니다. 가능한 값은 다음과 같습니다.

반환 코드 설명
E_FAIL
이 메서드가 데이터가 기록되었는지 확인하지 않고 시간 초과가 발생했습니다.
S_OK
데이터가 메모리에 성공적으로 기록되었습니다.
VFW_E_NOT_COMMITTED
할당자는 IMemAllocator::Commit 메서드를 호출하지 않았습니다.

설명

이 메서드는 할당된 메모리에 대한 모든 이전 쓰기 작업이 성공했음을 보장합니다. 후속 메모리 쓰기 작업에는 에 대한 또 다른 호출이 WriteSync필요합니다.

이 메서드는 구현에 따라 다르며 필요한 경우 메모리 쓰기 작업을 메모리에 동기화하는 데 사용됩니다. 온보드 메모리의 드라이버는 구현을 제공합니다.

IAMDevMemoryControl 인터페이스는 일반적으로 PCI(주변 구성 요소 상호 연결) 브리지를 통해 액세스되는 메모리에서 찾을 수 있습니다. (PCI는 프로세서와 주변 장치 간에 고속 데이터 경로를 제공하는 개인용 컴퓨터용 로컬 버스입니다.) 다른 디바이스가 PCI 브리지 뒤에서 해당 메모리에 액세스하는 경우 메모리 쓰기 작업이 완료된 후 PCI 브리지 뒤의 메모리를 동기화해야 합니다. 이는 메모리에 대한 호스트 액세스가 PCI 브리지 FIFO를 통해 버퍼링되고(처음에는 먼저) 브리지가 실제로 데이터를 쓰기 전에 쓰기가 완료되었다고 가정하기 때문입니다. IAMDevMemoryControl::WriteSync 메서드가 호출되지 않은 경우 SCSI 컨트롤러와 같이 브리지 뒤의 디바이스에 의한 후속 작업은 쓰기가 완료되기 전에 메모리를 읽을 수 있습니다.

요구 사항

요구 사항
대상 플랫폼 Windows
헤더 strmif.h(Dshow.h 포함)

추가 정보

오류 및 성공 코드

IAMDevMemoryControl 인터페이스