다음을 통해 공유


미니포트 드라이버에 대한 함수 테이블

일반 미니포트 드라이버의 위쪽 에지 인터페이스( WDM 오디오 용어 참조)는 함수 테이블로 구성됩니다. 일부 비 오디오 미니포트 드라이버는 등록하는 동안 포트 드라이버에 함수 테이블을 제공하며, 이때 미니포트 드라이버는 미니포트 드라이버에 필요한 컨텍스트 구조의 크기를 포트 드라이버에 알릴 수 있습니다. 포트 드라이버는 함수 테이블을 일부 프라이빗 위치에 복사하고, 컨텍스트 구조를 할당하고, 함수 테이블에서 초기화 함수를 호출하여 컨텍스트 구조에 대한 포인터를 전달합니다.

마찬가지로 오디오 미니포트 드라이버는 함수 테이블을 사용하지만 정적으로 할당되며 포트 드라이버에서 복사할 필요가 없습니다. 또한 포트 드라이버는 지정된 풀에서 컨텍스트("개체") 메모리를 검색하고 함수 테이블에 대한 포인터를 컨텍스트에 설치합니다. 함수 테이블 포인터는 항상 컨텍스트의 첫 번째 필드이므로 포트 드라이버에는 컨텍스트 포인터만 필요하고 컨텍스트를 통해 함수 테이블에 액세스할 수 있습니다.

이 방법은 COM이 추상화된 개체를 만들기 위한 견고하고 효율적이며 널리 알려진 모델을 제공하므로 수행되었습니다. 오디오 미니포트 드라이버 모델은 COM 및 COM 문헌 본문에 대한 업계 경험을 활용합니다. C 또는 C++에서 개체를 구현하고 사용할 수 있습니다. 어셈블리 언어도 사용할 수 있지만 이식성이 필요하지 않은 경우에만 사용해야 합니다.