2011-05-02 3 views
1

USB 클래스 호환 오디오 드라이버를 상속 받았습니다. WinXP, Win7 등에서 잘 작동합니다.Windows XP : 일반 드라이버의 이름을 찾을 수 있습니까?

이탈리아 XP 컴퓨터 (다른 언어는 아직 확인하지 않았습니다)에서 실행되지 않습니다. 우리의 설치 (기본적으로) 가지고이 :

... 
SetupDiGetDeviceRegistryProperty(info, &data, SPDRP_DEVICEDESC, &type, (BYTE *)name, sizeof(name) ; 
... 
if(0 == wcsicmp(name, "USB Audio Device")) { 
    ... 
    // install our driver 
} 

그래서, 우리가 올바른 장치 (USB\VID_0a73)와 일반 드라이버 ("USB 오디오 장치가")를 설치하면 우리가 가서 우리의 설치가있는 경우. 그러나 이탈리아 기계의 경우 일반 이름은 "USB 스피커"입니다. 비교가 실패하고 설치하지 않습니다. Windows는 레지스트리의 어딘가에서 그 이름을 가져와야합니다. 아마도 같은 장소에서 잡아 당겨 하드 와이어 된 문자열 대신에 비교해야합니다. 현재 설치된 드라이버가 일반 일 경우 감지 할 수있는 더 좋은 방법이 있나요

HKLM\Software\Microsoft\Window NT\CurrentVersion\drivers.desc: wdmaud.drv == USB Speakers 
  1. :

    난에 그 이름을 볼 수 있습니까?

  2. 만약 내가이 문자열에 머물러 있다면 레지스트리에 제네릭 드라이버의 이름을 찾을 수있는 곳이 있습니까?

답변

1

그런 다음 그것을 할 것으로 보인다 HKLM\SYSTEM\CurrentControlSet\services\<service name>\ImagePath

+1

에서 드라이버를 조회 SPDRP_SERVICE를 사용할 수 있습니다. 사실, 서비스 이름 _usbaudio_에 의존 할 수 있다고 생각하고 드라이버 이름 자체를 찾는 추가 단계가 아니라 바로 확인하십시오. 감사! – halm

관련 문제