다음을 통해 공유


함수 컨트롤러 드라이버에 대한 USB 레지스트리 설정

OEM은 컴퓨터에 연결할 때 디바이스가 올바른 메타데이터로 열거되도록 여러 레지스트리 값을 설정해야 합니다. 이러한 값은 Windows의 USB 디바이스 쪽 드라이버에 대한 디바이스 및 구성 설명자를 지정합니다. 고유한 인터페이스를 만들고 포함하는 OEM은 인터페이스를 로드하고 사용하려면 추가 레지스트리 값을 설정해야 합니다.

디바이스 쪽 USB 드라이버와 관련된 레지스트리 키는 다음과 같습니다HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\USBFN

이 항목에서는 디바이스의 디바이스, 구성 및 인터페이스 설명자를 정의하는 이전 키 및 하위 키에 대한 설정을 설명합니다.

USBFN 레지스트리 키

USB 디바이스에 대한 구성 정보는 레지스트리에 있습니다. HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\USBFN

이 표에서는 하위 키에 대해 설명합니다. 그 중 일부는 OEM에서 수정할 수 있습니다. 각 하위 키에 대해 지원되는 값에 대한 자세한 내용은 아래 섹션에 나와 있습니다.

하위 키 Description
대체 문자 이 하위 키에는 하나 이상의 대체 설정이 있는 인터페이스를 설명하는 추가 하위 키가 포함되어 있습니다.
연결 이 하위 키는 IAD(인터페이스 연결 설명자)를 정의합니다. 각 IAD를 사용하면 여러 인터페이스를 단일 함수로 그룹화할 수 있습니다. 각 하위 키는 다른 IAD를 나타내며 OEM은 해당 하위 키의 값을 수정할 수 있습니다.
기본값 이 하위 키에는 VID 및 PID와 같은 디바이스별 설정을 설명하는 데 사용되는 기본값이 포함되어 있습니다. 부모 키의 값이 재정의되는 Microsoft 소유 하위 키입니다.
구성 이 하위 키에는 USB 열거 중에 사용되는 구성 설명자 값이 포함된 추가 하위 키가 포함되어 있습니다. 예를 들어 표준 테스트 구성은 HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\USBFN\Configurations\TestConfig아래에 있을 수 있습니다.
Configurations\Default Microsoft 소유의 하위 키입니다. 기본 구성에 대한 값이 포함되어 있습니다. 기본 구성의 인터페이스는 IncludeDefaultCfg 값이 HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\USBFN 키에서 1로 설정된 경우 현재 구성 앞에 추가됩니다.
인터페이스 이 하위 키에는 특정 인터페이스 설명자를 설명하는 추가 하위 키가 포함되어 있습니다. 예를 들어 USB 인터페이스를 통해 IP는 HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\USBFN\Interfaces\IpOverUsb아래에 있을 수 있습니다. 인터페이스 하위 키의 이름은 USBFn 클래스 드라이버를 로드하기 위한 USBFN 자식 디바이스의 하드웨어 ID로도 사용됩니다. USB를 통해 IP 예제에서 USBFN 자식 디바이스의 하드웨어 ID는 USBFN\IpOverUsb입니다.

이 표에서는 OEM이HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\USBFN 키에서 정의할 수 있는 값을 설명합니다. 이 키에 정의되지 않은 값은 HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\USBFN\Default에서 Microsoft가 정의한 기본값을 가정합니다.

모든 OEM은 idVendor, idProduct, ManufacturerStringProductString 값을 설정해야 합니다. 자체 인터페이스를 만들고 추가하는 OEM은 InterfaceList에 해당 인터페이스를 포함하는 HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\USBFN\Configurations 하위 키의 이름으로 CurrentConfiguration을 설정해야 합니다.

형식 소유자 Description
IncludeDefaultCfg REG_DWORD OEM OEM이 IpOverUsb 또는 MTP와 같은 기본 구성의 인터페이스를 포함하려는 경우 1로 설정합니다.
idVendor REG_DWORD OEM 열거 중에 호스트로 전송되는 디바이스 설명자에 대한 공급업체 식별자입니다.
idProduct REG_DWORD OEM 열거 중에 호스트로 전송되는 디바이스 설명자에 대한 제품 식별자입니다.
ManufacturerString REG_SZ OEM 디바이스 제조업체를 식별하기 위해 호스트로 전송되는 제조업체 문자열입니다.
ProductString REG_SZ OEM 디바이스를 제품으로 설명하는 문자열입니다. 기본값은 Windows 10 Mobile 디바이스입니다. 이 값은 연결된 컴퓨터의 사용자 인터페이스에서 디바이스의 표시 이름으로 사용됩니다. OEM은 이 값이 DeviceTargetingInfo 하위 키 아래의 PhoneModelName 값과 일치하는지 확인해야 합니다.
iSerialNumber REG_DWORD OEM 이 값을 0으로 설정하면 디바이스에 일련 번호가 없습니다. 이 값이 0이 아니거나 존재하지 않는 경우 일련 번호는 디바이스별로 고유하게 생성됩니다.
CurrentConfiguration REG_SZ OEM 이 문자열은 구성 하위 키의 이름에 해당해야 합니다. 이 문자열은 USB 디바이스 열거형에 대한 구성 설명자를 빌드하는 데 사용할 구성을 결정합니다.
ClassEndpointRequestEnabled REG_DWORD OEM 클래스 엔드포인트 요청이 수락되었음을 나타내려면 1로 설정합니다. 클래스 엔드포인트 요청은 기본적으로 허용되지 않습니다. 클래스 엔드포인트 요청이 허용되지 않거나 특정 인터페이스에 대해서만 수락됨을 나타내려면 0으로 설정하거나 이 레지스트리 값을 설정하지 마세요. 특정 인터페이스에 대한 클래스 엔드포인트 요청을 수락하는 방법을 알아보려면 USBFN\Interfaces 레지스트리 키 섹션의 ClassEndpointRequestEnabled 값을 참조하세요.

USBFN\Configurations 레지스트리 키

이 표에서는 OEM이HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\USBFN\Configurations아래의 하위 키에 대해 정의할 수 있는 값을 설명합니다. 각 하위 키는 다른 USB 구성을 나타냅니다. OEM이 자체 인터페이스를 만들려는 경우 OEM은 사용할 인터페이스를 포함하는 새 구성을 정의해야 합니다. 이렇게 하려면 구성의 이름을 사용하는 HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\USBFN\Configurations 하위 키를 만들고 하위 키를 이 테이블의 값으로 채웁니다. 또한 USB 드라이버가 새 구성을 사용하려면 이전 표에 설명된 CurrentConfiguration 값을 구성 하위 키의 이름으로 설정해야 합니다.

형식 소유자 Description
InterfaceList REG_MULTI_SZ OEM 또는 Microsoft HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\USBFN\Interfaces아래의 인터페이스 하위 키, HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\USBFN\Associations아래에 정의된 IAD 연결 및 HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\USBFN\Alternates 아래에 정의된 대체 인터페이스에 해당하는 인터페이스 이름 목록을 포함합니다. 이러한 키는 복합 구성 설명자를 설명하는 데 사용되는 인터페이스를 결정합니다.

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\USBFN 키 아래의 IncludeDefaultCfg 값이 1로 설정된 경우 이 목록은 Microsoft 소유의 기본 인터페이스 목록에 추가되어 디바이스가 열거하는 데 사용할 전체 인터페이스 목록을 만듭니다.
MSOSCompatIdDescriptor REG_BINARY OEM 또는 Microsoft 선택 사항입니다. 구성에 대한 확장 호환성 ID OS 기능 설명자를 정의합니다. HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\USBFN 키 아래의 IncludeDefaultCfg 값이 1로 설정되면 이 설명자의 함수가 기본 구성의 함수 및 인터페이스에 추가됩니다.

USBFN\Interfaces 레지스트리 키

이 표에서는 OEM이HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\USBFN\Interfaces아래의 하위 키에 대해 수정할 수 있는 값에 대해 설명합니다.

각 하위 키는 다른 USB 인터페이스를 나타냅니다. 인터페이스를 정의하려면 인터페이스의 이름을 사용하여 HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\USBFN\Interfaces 아래에 하위 키를 만들고 아래 표의 값으로 채웁니다. 또한 인터페이스는 인터페이스가 CurrentConfigurationInterfaceList에 포함된 경우에만 포함됩니다.

형식 소유자 Description
InterfaceDescriptor REG_BINARY OEM 또는 Microsoft USB 열거 중에 호스트에 보낼 인터페이스 설명자의 이진 표현입니다. bInterfaceNumberiInterface 값은 다른 인터페이스 설명자와의 충돌을 방지하기 위해 전체 구성 설명자를 컴파일한 후 USB 함수 스택에 의해 자동으로 채워집니다.
InterfaceGUID REG_SZ OEM 또는 Microsoft 버스의 인터페이스를 고유하게 식별하는 GUID입니다.
InterfaceNumber REG_DWORD OEM 또는 Microsoft 선택 사항입니다. 이 값은 함수에 고정 인터페이스 번호를 할당하는 데 사용됩니다. 인터페이스 번호 0-1F는 레거시 함수용으로 예약되고, 20-3F는 Microsoft용으로 예약되고, 40-5F는 OEM에서 사용하도록 예약되어 있습니다.
MSOSExtendedPropertyDescriptor REG_BINARY OEM 또는 Microsoft 선택 사항입니다. 인터페이스에 대한 확장 속성 OS 기능 설명자를 정의합니다.
ClassEndpointRequestEnabled REG_DWORD OEM 이 레지스트리 값은 HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\USBFN\ClassEndpointRequestEnabled 없거나 0으로 설정된 경우에만 유효합니다. 이 인터페이스에 대한 클래스 엔드포인트 요청이 수락되었음을 나타내려면 이 레지스트리 값을 1로 설정합니다. 이 인터페이스에 대한 클래스 엔드포인트 요청이 허용되지 않음을 나타내려면 0(또는 이 레지스트리 값을 설정하지 않음)으로 설정합니다.

USBFN\Alternates 레지스트리 키

대체 하위 키는 하나 이상의 대체 인터페이스가 있는 단일 인터페이스를 정의하는 데 사용됩니다. 이 표에서는 OEM이HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\USBFN\Alternates아래의 하위 키에 대해 수정할 수 있는 값에 대해 설명합니다.

각 하위 키는 다른 인터페이스를 나타냅니다. 대체 설정을 사용하여 인터페이스를 정의하려면 인터페이스의 이름을 사용하여 HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\USBFN\Alternates 아래에 하위 키를 만들고 아래 표의 값으로 채웁니다.

형식 소유자 Description
InterfaceList REG_MULTI_SZ OEM 또는 Microsoft HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\USBFN\Interfaces아래에 정의된 인터페이스에 해당하는 두 개의 추가 인터페이스 이름 목록입니다. 이 키는 대체 설정이 있는 인터페이스를 전체적으로 정의합니다. 첫 번째 인터페이스는 대체 설정 0에 해당하고, 두 번째 인터페이스는 대체 설정 1에 해당합니다.
InterfaceNumber REG_DWORD OEM 또는 Microsoft 선택 사항입니다. 이 값은 함수에 고정 인터페이스 번호를 할당하는 데 사용됩니다. 인터페이스 번호 0-1F는 레거시 함수용으로 예약되고, 20-3F는 Microsoft용으로 예약되고, 40-5F는 OEM에서 사용하도록 예약되어 있습니다.
MSOSExtendedPropertyDescriptor REG_BINARY OEM 또는 Microsoft 선택 사항입니다. 인터페이스에 대한 확장 속성 OS 기능 설명자를 정의합니다.

USBFN\Associations 레지스트리 키

OEM은 IAD(인터페이스 연결 설명자)를 정의하여 연결을 지정할 수 있습니다. 각 IAD를 사용하면 여러 인터페이스를 단일 함수로 그룹화할 수 있습니다. 이 표에서는 OEM이HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\USBFN\Associations아래의 하위 키에 대해 수정할 수 있는 값에 대해 설명합니다.

각 하위 키는 다른 IAD를 나타냅니다. 연결을 정의하려면 IAD 의 이름을 사용하여HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\USBFN\Associations아래에 하위 키를 만들고 아래 표의 값으로 채웁니다.

형식 소유자 Description
InterfaceList REG_MULTI_SZ OEM 또는 Microsoft USB 함수와 연결된 인터페이스 또는 대체 인터페이스 목록입니다. 목록의 크기가 2보다 작으면 함수 드라이버 스택이 로드되지 않습니다. 다른 함수 또는 인터페이스는 계속 로드됩니다.
bFunctionClass REG_DWORD OEM 또는 Microsoft 02로 설정된 함수의 클래스 코드입니다.
bFunctionSubClass REG_DWORD OEM 또는 Microsoft 0d로 설정된 함수의 하위 클래스 코드입니다.
bFunctionProtocol REG_DWORD 01로 설정된 함수의 프로토콜 코드입니다.
MSOSExtendedPropertyDescriptor REG_BINARY OEM 또는 Microsoft 선택 사항입니다. 인터페이스에 대한 확장 속성 OS 기능 설명자를 정의합니다.

MirrorLink는 모바일 디바이스와 자동차 인포테인먼트 시스템 간의 통합을 허용하는 상호 운용성 표준입니다. 디바이스는 USB CDC NCM 인터페이스를 MirrorLink 클라이언트에 노출해야 합니다. CDC(Communications Device Class) 디바이스는 IAD(인터페이스 연결 설명자) 및/또는 CDC 함수 공용 구조체 설명자를 사용하여 데이터 인터페이스를 설명해야 합니다.

Windows 10 Mobile 디바이스에서 MirrorLink 연결을 사용하도록 설정하려면 OEM에서 IAD를 노출하기 위해 이러한 변경을 수행해야 합니다.

  • 이전 표에 표시된 레지스트리 값을 설정하여 IAD(인터페이스 연결 설명자)를 사용하여 통신 및 데이터 인터페이스에 대한 연결을 만듭니다.

  • 레지스트리 설정 외에도 이 레지스트리 값을 0이 아닌 값으로 설정합니다.

    형식 소유자 Description
    MirrorLink REG_DWORD OEM 또는 Microsoft 0이 아닌 값은 인터페이스가 MirrorLink를 지원했음을 나타냅니다. USB 함수 스택이 MirrorLink USB 명령을 중단하지 않습니다.
  • 클래스별 설명자는 레지스트리에 정의된 인터페이스 설명자 집합에 포함될 수 있습니다. USB 함수 드라이버 스택이 정확하게 구문 분석할 수 있도록 크기 필드를 해당 설명자에 설정해야 합니다.

또는 CDC 함수 공용 구조체 설명자를 Class-Specific 인터페이스 설명자로 정의할 수도 있습니다. 그러나 Union 설명자로 지정된 인터페이스 번호는 정적이며 USB 함수 드라이버 스택에서 할당되지 않으며 Union 설명자가 있으면 설명한 인터페이스가 단일 자식 PDO와 연결되지 않습니다. 해당 연결에는 IAD가 필요합니다.