포트 모니터
포트 모니터는 사용자 모드 DLL로 구성됩니다. 사용자 모드 인쇄 스풀러와 I/O 포트 하드웨어에 액세스하는 커널 모드 포트 드라이버 간에 통신 경로를 제공하는 역할을 담당합니다. 포트 모니터는 일반적으로 CreateFile, WriteFile, ReadFile 및 DeviceIOControl 함수를 사용하여 커널 모드 포트 드라이버와 통신합니다. 포트 모니터는 포트 관리에 설명된 대로 서버의 프린터 포트 관리 및 구성을 담당 합니다.
"프린터"에 대한 NT 기반 운영 체제 사용자의 보기는 실제로 하나 이상의 물리적 프린터 디바이스를 연결할 수 있는 인쇄 큐입니다. 포트는 인쇄 큐와 단일 프린터 디바이스 간의 물리적 연결입니다. 각 포트 모니터는 하나 이상의 포트 유형 인스턴스를 하나 이상 지원합니다. 예를 들어 샘플 포트 모니터인 Localmon.dll 서버의 모든 로컬 COM 및 LPT 포트를 지원할 수 있습니다. Print 폴더는 AddPrinter 함수를 호출하여 포트 모니터에 포트를 할당합니다.
여러 프린터 디바이스를 나타내는 인쇄 큐의 경우(여러 포트를 통해) 스풀러는 각 인쇄 작업을 사용 가능한 첫 번째 포트로 보냅니다. 포트 모니터가 지정된 포트가 사용 중이거나 오류가 발생한 경우 스풀러는 포트 모니터에서 지원하는 다른 포트를 지정하여 작업을 큐에 다시 제출합니다.
Localmon.dll 외에도 Windows 2000 이상 운영 체제 버전은 몇 가지 추가 포트 모니터를 제공합니다. Windows 2000 서버 리소스 키트는 이러한 각 포트 모니터에 대해 설명합니다. (일부 언어 및 국가에서는 이 리소스를 사용할 수 없습니다.)
사용자 지정된 포트 모니터를 작성하여 추가 유형의 I/O 포트 하드웨어를 지원할 수 있습니다.
Windows 2000 이상의 경우 각 포트 모니터는 두 개의 DLL로 나뉩니다.
포트 모니터 UI DLL 포트 모니터의 사용자 인터페이스 DLL은 사용자 인터페이스 기능을 포함하고 인쇄 클라이언트 시스템에서 실행됩니다.
이 DLL은 클라이언트 시스템의 System32 하위 디렉터리에 있어야 합니다.
포트 모니터 서버 DLL
포트 모니터의 서버 DLL은 포트 통신 기능을 포함하고 인쇄 서버에서 실행됩니다. 사용자 인터페이스를 표시해서는 안 됩니다.
UI DLL은 스풀러의 XcvData 함수를 호출하여 서버 DLL과 통신합니다.
샘플 포트 모니터는 WDK(Windows 드라이버 키트)에 포함되어 있습니다.