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

IAMDevMemoryAllocator::GetDevMemoryObject

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

커스텀 할당자로 집성 할 수 있는 장치 메모리 제어 개체에의 IUnknown 인터페이스 포인터를 얻어온다.

구문

HRESULT GetDevMemoryObject(
    IUnknown **ppUnkInner,
    IUnknown *pUnkOuter
);

파라미터

ppUnkInner

[out] 새롭고 생성 되는 제어 개체의 IUnknown 의 포인터 주소. 이 내부 IUnknown 인터페이스는, 외부의 개체가 파기될 때 릴리즈 된다. 커스텀 할당자는, 이 포인터에 대해 QueryInterface 메서드를 호출해,IAMDevMemoryControl 인터페이스를 얻어온다.

pUnkOuter

[in] 커스텀 할당자의 IUnknown 인터페이스의 포인터. 이 인터페이스는, 커스텀 할당자 내부의 장치 메모리 제어 개체를 집성 한다.

반환값

HRESULT 값을 돌려준다.

주의

장치 메모리 제어 개체는, 커스텀 할당자로 집성 할 필요가 있다. 이것은, 온보드 메모리를 사용하는 렌더러가, 새로운 할당자를 받으면 IAMDevMemoryControl 를 조회해, 메모리가 같은 장치에 근거하는 것을 확인하기 때문이다. 하드웨어 필터가 받는 IMemAllocator 개체는, 온보드 메모리를 사용하는 경우도 사용하지 않는 경우도 있으므로, 이러한 상태가 발생한다. 호환성이 있는 할당자인지 아닌지를 판별하려면 ,IAMDevMemoryControl 인터페이스를 조회해, 특정의 메서드에 액세스 한다. IAMDevMemoryControl 은,IAMDevMemoryControl 의 메서드를 처리 하는 집성 개체를 생성 한다. 덧붙여 이 메서드는, 하드웨어에 의해 자주 다르다.

외부의 개체가 집성화를 처리 할 때의 규칙에 대해서는, COM 의 문서를 참조할것.

참조

↑TOP