다음을 통해 공유


COM 기반 렌더링 플러그 인

Important

최신 인쇄 플랫폼은 Windows에서 프린터와 통신하는 데 선호되는 수단입니다. 프린터 장치 개발을 위해 Windows 10 및 11의 인쇄 환경을 사용자 지정하려면 MICROSOFT의 IPP 받은 편지함 클래스 드라이버와 PSA(인쇄 지원 앱)를 사용하는 것이 좋습니다.

자세한 내용은 최신 인쇄 플랫폼 및 인쇄 지원 앱 디자인 가이드를 참조하세요.

사용자 지정된 후킹 함수를 제공하려면 COM 기반 렌더링 플러그 인이 각 후킹 함수의 주소로 DRVENABLEDATA 구조체를 채우는 IPrintOemUni::EnableDriver 또는 IPrintOemPS::EnableDriver 메서드를 구현해야 합니다.

COM 기반 렌더링 플러그 인은 Unidrv 또는 Pscript5 드라이버가 함수를 정의하는 경우에만 그래픽 DDI 함수를 후크할 수 있습니다. 이러한 함수 목록은 IPrintOemUni::EnableDriver 또는 IPrintOemPS::EnableDriver를 참조하세요.

특정 사용자 지정된 후크 함수를 제공하는 경우 해당 함수는 드라이버의 동등한 그래픽 DDI 함수를 선점합니다. 사용자 지정된 후킹 함수를 디자인할 때 다음과 같은 옵션이 있습니다.

  • 후킹 함수는 그래픽 DDI 작업을 내부적으로 완전히 처리할 수 있습니다.

  • 후킹 함수는 프린터 드라이버의 동일한 그래픽 DDI 함수를 다시 호출할 수 있습니다.

후킹 함수는 드라이버의 그래픽 DDI 함수를 다시 호출하여 함수 인수의 전처리 또는 후처리를 수행할 수 있지만 드라이버가 실제로 그래픽 DDI 작업을 수행할 수 있도록 합니다. 렌더링 플러그 인의 IPrintOemUni::EnablePDEV 또는 IPrintOemPS::EnablePDEV 메서드에 대한 입력 인수 중 하나는 드라이버의 그래픽 DDI 함수에 대한 포인터를 포함하는 DRVENABLEDATA 구조체입니다. 이러한 함수를 다시 호출하려면 이 구조체의 내용을 저장해야 합니다.

사용자 지정된 PDEV 구조를 제공해야 할 수도 있습니다. 각 후킹 함수가 입력으로 수신하는 SURFOBJ 구조 포인터를 통해 그래픽 DDI 후킹 함수 내에서 이 구조를 참조할 수 있습니다. 특히 SURFOBJ 구조체의 dhpdev 멤버는 DEVOBJ 구조를 가리키고 DEVOBJ 구조체의 pdevOEM 멤버는 사용자 지정된 PDEV 구조를 가리킵니다.