2011-02-28 3 views
2

공급 업체의 소프트웨어 패키지를 사용하여 물리적 장치에 액세스하려고합니다. 그들이 GUID를 열 수 장치를 필요로하는 새로운 버전을 출시, 그러나GUID 별 장치 열기

hDevice= CreateFile("\\\\.\\DevName", 
    GENERIC_READ | GENERIC_WRITE, 
    0, NULL, OPEN_ExiSTING, 0, NULL); 

DEFINE_GUID입니다 : 소프트웨어 패키지의 이전 버전

는 사용자가 DOS 기호 이름을 통해 장치를 열 수 있었다 그들의 머리말에 포함되어 있습니다. 또한이 업데이트는 이전 방법으로 장치를 열지 못하게했습니다.

그들은 GUID로 장치를 여는 방법을 보여주기 위해 설명서를 업데이트하지 않았으므로 google-fu와 관련된 유용한 정보를 찾을 수 없었습니다.

확실히 GUID를 사용하여 장치를 여는 방법을 보여주는 어딘가의 예가 있어야합니까?

답변

3

아마도 지금 생각해 보았 겠지만, WinObj은 객체 관리자 네임 스페이스를 파헤치는 데 매우 편리합니다. 찾고있는 객체의 이름을 찾으면 열린 권리를 얻는 것이 매우 간단해야합니다.

6

대부분의 경우 공급 업체가 '장치 인터페이스 GUID'를 제공했을 가능성이 큽니다. CreateFile()에 사용할 수있는 이름을 얻으려면 해당 GUID가있는 모든 장치를 열거해야합니다. 이 작업은 플래그 DIGCF_DEVICEINTERFACE을 사용하여 SetupDiGetClassDevs()을 호출하여 수행됩니다. 결과 목록은 장치 정보 세트 (HDEVINFO)에 대한 핸들로 표시됩니다. 그런 다음 해당 핸들을 SetupDiEnumDeviceInterfaces()에 반복적으로 호출하여 피드 목록을 보냅니다. 각 목록 항목에 대해 해당 장치 경로를 받으려면 SetupDiGetDeviceInterfaceDetail()으로 전화해야합니다.