DirectShow 보유 사용이 금지되고 있는 인터페이스 IAMDevMemoryControl WriteSync   [목차열람] [주소복사] [슬롯비우기]
IAMDevMemoryControl::WriteSync
 
Microsoft DirectX 9.0

IAMDevMemoryControl::WriteSync

 :  IAMDevMemoryControl 인터페이스의 사용은 피하는 것.

쓰기 종료의 동기를 잡기 위해서(때문에) 사용한다. 이 메서드는, 특정의 할당자 영역에 기입해지고 있는 데이터가, 메모리에 완전하게 기입해지면 반환된다.

구문

HRESULT WriteSync(void);

반환값

HRESULT 값을 돌려준다. 다음의 몇개의 값을 돌려준다.

설명
E_FAIL 데이터가 기입해진 것을 이 메서드가 확인하기 전에 타임 아웃이 발생했다.
S_OK 데이터가 메모리에 기입해졌다.
VFW_E_NOT_COMMITTED 할당자가 IMemAllocator::Commit 메서드를 호출하지 않았다.

주의

이 메서드에서는, 할당하고 끝난 메모리에의 지금까지의 모든 쓰기 처리가, 정상적으로 종료하고 있는 것이 전제이다. 이후의 메모리 쓰기 처리에서는,WriteSync 를 새롭게 호출할 필요가 있다.

이 메서드는 처리에 의해 각각 달라, 메모리에의 쓰기 처리의 동기를 잡기 위해서(때문에), 필요에 따라서 사용된다. 온보드 메모리의 드라이버가 처리을 제공한다.

IAMDevMemoryControl 인터페이스는, 보통, PCI (Peripheral Component Interconnect) 브릿지를 개입시켜 액세스 되는 메모리상에 있다. PCI 는 퍼스널 컴퓨터용의 로컬 버스로, 프로세서와 주변기기와의 사이의 고속의 데이터 패스를 제공한다. PCI 브릿지에 접속하고 있는 메모리는, 역시 PCI 브릿지에 접속하고 있는 다른 장치가 메모리에 액세스 해 오는 경우, 메모리 쓰기 처리의 종료후에 동기를 잡을 필요가 있다. 이것은, 메모리에 액세스 하는 호스트는 PCI 브릿지의 FIFO (선입처 방편) 포맷으로 버퍼링 되어 쓰기가 완료하고 나서 브릿지가 실제로 데이터를 기입하는 것을 전제로 하고 있기 때문에 있다. IAMDevMemoryControl::WriteSync 메서드가 불려 가지 않는 경우는, SCSI 콘트롤러 등, 브릿지에 접속하고 있는 장치가, 쓰기가 완료하기 전에 메모리를 읽어내는 일이 있다.

참조

↑TOP