eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingGUID + USB + HID + MOUSERe: GUID + USB + HID + MOUSE
  • Data: 2012-06-03 23:54:53
    Temat: Re: GUID + USB + HID + MOUSE
    Od: "Grzegorz Niemirowski" <g...@p...onet.pl> szukaj wiadomości tego autora
    [ pokaż wszystkie nagłówki ]

    identyfikator: 20040501 <N...@g...pl> napisał(a):
    >> Na podstawie której strony z tej książki wysnułeś wnioski jak powyżej?
    > żadnej, autor pominął ten istotny dla zrozumienia całości szczegół...
    >> Producent kupuje VID. Ten VID oraz wygenerowany przez siebie PID
    >> umieszcza w urządzeniu i urządzenie wysyła oba te identyfikatory
    >> podczas enumeracji. Dzięki temu system operacyjny może dopasować
    >> sterownik do
    > urządzenia. GUID
    >> identyfikuje interfejs jaki sterownik udostępnia warstwie
    >> aplikacji/użytkownika. Listę podłączonych urządzeń, których sterownik ma
    >> interfejs identyfikowany tym GUIDem dostajesz funkcją
    >> SetupDiGetClassDevs. Możesz po niej iterować za pomocą
    >> SetupDiEnumDeviceInterfaces. Szczegóły urządzenia z listy wyciągasz
    >> za pomocą SetupDiGetDeviceInterfaceDetail. Na koniec zwalniasz listę
    >> funkcją SetupDiDestroyDeviceInfoList.
    > coś podobnego pisze w książce, nie wiem czy celowo, ale odnoszę
    > wrażenie, że za bardzo scaliłeś wątek i brakuje kilku słów pomiędzy
    > wyjaśniający moje pytanie - do czego służy GUID?

    Niczego nie brakuje. Napisz, czego nie rozumiesz. Jak napisałem, GUID
    identyfikuje interfejs udostępniany przez sterownik. GUID, to jak możesz
    przeczytać w Google, globalnie unikalny identyfikator. Tutaj identyfikuje
    interfejs, który jest w pewnym sensie identyfikuje funkcje urządzenia. Jeśli
    aplikacja widzi urządzenie z danym interfejsem, to wie, że może z tym
    urządzeniem komunikować się w określony sposób. Innymi słowy wie, że to jest
    jej urządzenie, że może je obsłużyć. Wołamy SetupDiGetClassDevs żeby
    sprawdzić, czy zostały podłączone jakieś urządzenia, które potrafimy
    obsługiwać.
    Ty trochę zamieszałeś, bo w temacie dałeś HID, a wtedy GUID nam nie jest
    specjalnie potrzebny, bo danym urządzeniem zajmuje się już system
    operacyjny. GUID interesuje nas wtedy, jak projektujemy swoje urządzenie i
    piszemy dla niego aplikację. Wtedy ta aplikacja szuka urządzeń z tym GUIDem
    bo wie, że to są jej urządzenia.

    > czyli podczas enumeracji urządzeniw wysyła VID i PID, na tej podstawie
    > system instaluje sterownik, któremu nadaje jakiś numerek GUID?

    Ogólnie tak.

    >> Sterownik wybiera. Enumeruje endpointy np. funkcją
    >> WdfUsbInterfaceGetConfiguredPipe i potem może jej użyć np. w
    >> WdfUsbTargetPipeFormatRequestForRead i kolejno w
    >> WdfRequestSetCompletionRoutine i potem WdfRequestSend.
    > to to magia.

    Bo nie napisałeś o co Ci konkretnie chodzi. Ja podałem przykład dla
    sterownika WDF. Bo generalnie to o endpointach mówimy na poziomie
    sterownika, aplikacja użytkownika już sobie takimi niskopoziomowymi rzeczami
    nie zawraca głowy.

    --
    Grzegorz Niemirowski
    http://www.grzegorz.net/
    OE PowerTool i Outlook Express: http://www.grzegorz.net/oe/
    Uptime: 0 days, 11 hours, 11 minutes and 43 seconds

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

Najnowsze wątki z tej grupy


Najnowsze wątki

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: