병렬 포트 만들기 및 시작
플러그 앤 플레이 관리자는 병렬 포트에 대해 시스템 제공 함수 드라이버의 플러그 앤 플레이 지원을 사용하여 병렬 포트를 나타내는 FDO(함수 디바이스 개체)를 만들고 시작합니다.
병렬 포트 함수 드라이버는 다음을 수행합니다.
명명된 FDO를 만듭니다.
병렬 포트에 대한 디바이스 이름의 형식은 "\Device\ParallelPortx"입니다. 여기서 x는 포트 번호의 정수 값입니다. 병렬 포트 함수 드라이버는 병렬 포트에 대한 플러그 앤 플레이 레지스트리 키 아래의 PortName 항목 값(REG_SZ)을 사용하여 포트 번호를 확인합니다. PortName의 형식이 "LPTn"이고 여기서 n은 포트의 수인 경우 "ParallePortx"의 x는 값(n -1)으로 설정됩니다. 예를 들어 "ParallelPort0"은 "LPT1"과 연결됩니다. PortName에 올바른 형식이 없으면 디바이스 개체가 만들어지지 않습니다.
"ParallelPortx" 디바이스 이름은 보장되지 않습니다. IoRegisterPlugPlayNotification을 사용하여 GUID_PARALLEL_DEVICE 디바이스 인터페이스의 도착에 대한 알림을 받을 것을 권장합니다.
병렬 포트에 대한 GUID_PARALLEL_DEVICE 인터페이스를 등록하고 사용하도록 설정합니다.
플러그 앤 플레이 관리자가 보낸 리소스의 유효성을 검사합니다.
병렬 포트에 연결된 1284.3 디바이스 초기화
병렬 포트 함수 드라이버는 데이지 체인 디바이스 수를 계산하고 각 디바이스에 데이지 체인 ID를 할당합니다. Microsoft Windows 2000에서 드라이버는 0에서 3까지의 ID를 할당합니다. Windows XP에서 드라이버는 0 또는 1의 ID를 할당합니다. 디바이스 ID는 병렬 포트에 물리적으로 가장 가까운 디바이스부터 시작하여 오름차순으로 디바이스에 할당됩니다.
FDO 및 연결된 WMI 데이터 블록 및 콜백을 WDM 공급자에 등록합니다.
병렬 포트 함수 드라이버는 병렬 포트가 할당되고 해제된 횟수를 기록합니다.
병렬 포트 하드웨어에서 지원하는 통신 모드를 결정합니다.
하드웨어는 IEEE 1284 이상과 호환되어야 합니다. 병렬 포트 함수 드라이버는 하드웨어가 BYTE, EPP 및 ECP 모드를 지원하는지 확인합니다. EPP는 컴퓨터의 작은 하위 집합에서만 지원됩니다.
병렬 포트에 대한 FIFO(작업 큐)를 만듭니다.
각 병렬 포트에는 자체 작업 큐가 있습니다. 병렬 포트 함수 드라이버 큐는 디바이스 요청만 할당하고 선택합니다. 병렬 포트 함수 드라이버가 새 할당 요청을 받거나 요청을 선택할 때 포트가 이미 할당된 경우 요청을 큐에 대기합니다.