다음을 통해 공유


USBPRINT.SYS 의해 생성된 식별자

Windows 2000부터 운영 체제는 프린터 하위 시스템을 USB 스택에 연결하는 커널 모드 USB 인쇄 드라이버 usbprint.sys 제공합니다. 네이티브 USB 프린터 드라이버는 공급업체가 자체 커널 모드 USB 프린터 드라이버를 개발할 필요가 없도록 합니다. 이를 통해 공급업체는 USB 및 병렬 프린터 모두에서 작동하는 고급 사용자 모드 프린터 드라이버를 개발할 수 있습니다.

usbprint.inf 설치 파일에는 모든 USB 클래스 7 프린터 디바이스와 일치하는 호환 ID가 포함되어 있습니다. USB 허브 드라이버가 이러한 디바이스 중 하나를 열거하는 경우 운영 체제는 허브 드라이버가 usbprint.inf에서 생성하고 USB 프린터 드라이버를 로드하는 ID와 일치하는 것을usbprint.sys. usbprint.inf에 있는 호환 ID의 형식은 다음과 같습니다.

USB\CLASS_07

위치:

  • 클래스 07h = USB 프린터 클래스에 속하는 디바이스

USB 프린터 드라이버가 로드되는 즉시 프린터 디바이스에 대한 새 PDO를 만듭니다. 플러그 앤 플레이(PnP) 관리자가 새로 만든 PDO의 디바이스 식별 문자열을 쿼리할 때 USB 프린터 드라이버는 병렬 버스 열거자에서 생성된 문자열 식별자와 호환되는 디바이스의 IEEE 1284 문자열에서 파생된 새 하드웨어 ID를 만듭니다. 이 하드웨어 ID의 형식은 다음과 같습니다.

USBPRINT\NameModel(20)체크섬(4)

위치:

  • NameModel(20)은 최대 20 자로 잘린 제조업체 이름과 디바이스 모델의 연결입니다.

  • Checksum(4)은 제조업체 이름과 모델 이름에서 계산된 4자 CRC(순환 중복성 검사) 코드입니다.

문자열의 공백은 밑줄로 바뀝니다. 예를 들어 제조업체의 이름이 "Hewlett-Packard"인 경우 모델 이름은 "HP Color LaserJet 550"이고 체크섬은 3115이면 하드웨어 ID는 다음과 같습니다.

USBPRINT\Hewlett-PackardHP_Co3115

이전 예제에서는 모델 이름의 "HP"와 "Color" 사이의 공백을 밑줄로 바꿔 잘린 메이크/모델 문자열 "Hewlett-PackardHP_Co"을 생성했습니다.

참고 운영 체제에서 생성된 CRC는 이전 섹션 또는 다른 CRC 알고리즘에 설명된 대로 계산된 CRC와 일치하지 않을 수 있습니다. 따라서 프린터 드라이버가 프린터 드라이버의 INF 파일과 함께 사용할 올바른 hardwareID를 계산하지 못할 수 있습니다. hardwareID를 검색하려면 설치 중인 USB 프린터와 연결된 setupapi.dev.log 파일을 검색하는 것이 좋습니다.