-
11. Data: 2012-06-03 18:42:08
Temat: Re: GUID + USB + HID + MOUSE
Od: "identyfikator: 20040501" <N...@g...pl>
nie mógłby mi Ktoś tu napisać tego w punktach,
1. dołączam do USB myszkę
i co dalej? tylko konretami... wiem, że sporo wymagam ;o)
-
12. Data: 2012-06-03 19:00:36
Temat: Re: GUID + USB + HID + MOUSE
Od: "yamma" <y...@w...pl>
identyfikator: 20040501 wrote:
> 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?
Polskojęzyczna Wikipedia rzeczywiście ten termin wyjaśnia dość skąpo i
mętnie ale już anglojęzyczna dość wyczerpująco. Poszukaj, przeczytaj i
będziesz wiedział.
yamma
-
13. Data: 2012-06-03 19:11:07
Temat: Re: GUID + USB + HID + MOUSE
Od: g...@s...invalid (Adam Wysocki)
alter amonu <f...@g...pl> wrote:
> no niewazne, to byly moje wypowiedzi antydresiarskie (c calego
> cyklu wypowiedzi antydresiarskich), pozatym bez związku,
Jak zwykle bez związku z czymkolwiek...
--
Gof
-
14. Data: 2012-06-03 23:54:53
Temat: Re: GUID + USB + HID + MOUSE
Od: "Grzegorz Niemirowski" <g...@p...onet.pl>
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
-
15. Data: 2012-06-03 23:59:45
Temat: Re: GUID + USB + HID + MOUSE
Od: "Grzegorz Niemirowski" <g...@p...onet.pl>
identyfikator: 20040501 <N...@g...pl> napisał(a):
>> aplikacji/użytkownika. Listę podłączonych urządzeń, których sterownik ma
>> interfejs identyfikowany tym GUIDem dostajesz funkcją
>> SetupDiGetClassDevs.
> o to jest kluczowe, że niby jeden GUID może być przypisany do różnych
> urządzeń?
Właśnie do takich samych. Dzięki temu wiemy, że to są takie same urządzenia
i możemy je obsługiwać w taki sam sposób. Można powiedzieć, że GUID
identyfikuje urządzenie, że VID i PID są tłumaczone na GUID. Tylko, że GUID
jest właściwością sterownika a nie urządzenia. Dwa urządzenia mogą mieć inny
VID i PID ale taki sam GUID. Nie jestem do końca pewien, ale można by zrobić
sterownik udający jakieś urządzenie w ten sposób, że rejestrowałby interfejs
o jakimś GUIDzie, w ten sposób Windows widziałby urządzenie, którego
fizycznie nie ma. Chyba w ten sposób tworzy się np. wirtualne karty
sieciowe. Ale mogę się mylić, tak zgaduję tylko.
W każdym razie pisałem o enumeracji SetupDiEnumDeviceInterfaces bo to służy
do sprawdzenia ile urządzeń danego typu jest podłaczonych do komputera.
Dzięki temu aplikacja może wykryć podłączenie i rozpocząć komunikację z
urządzeniem bo wie, że to jest urządzenie, które ona zna (implementuje jakiś
określony protokół komunikacji).
--
Grzegorz Niemirowski
http://www.grzegorz.net/
OE PowerTool i Outlook Express: http://www.grzegorz.net/oe/
Uptime: 0 days, 11 hours, 19 minutes and 44 seconds
-
16. Data: 2012-06-04 00:07:04
Temat: Re: GUID + USB + HID + MOUSE
Od: "Grzegorz Niemirowski" <g...@p...onet.pl>
identyfikator: 20040501 <N...@g...pl> napisał(a):
> ogólnie to ja nie wiem, czy to kwestia dyrektyw Unii czy może system
> szkolnictwa jest taki jaki jest - dlaczego zadając konkretne pytanie z
> prośbą o rozjaśnienie dostaje się jeszcze bardziej zagmatwane odpowiedzi?
Bo nie rozumiesz pytań, które zadajesz. Są zbyt ogólne, pomijają nieistotne
rzeczy i łączą rzeczy, które nie są ze sobą związane. Problem jest w tym, że
czytasz złą książkę. To nie jest książka wprowadzająca do USB, tylko
przetłumaczony kawałek MSDN. Ta książka nie jest zła, ale nie nadaje się na
początek. Z resztą prawdę mówiąc, nie znam dobrego opracowania. Na pewno
bardzo dobrze jest USB in a nutshell, ale ono bardzo dobrze wprowadza do USB
jako takiego ale już nie do sterowników. Do tego bardzo dobrym materiałem
jest
http://www.codeproject.com/Articles/13620/Developing
-a-WDF-USB-Kernel-Mode-Driver-for-the-OS
ale z kolei trzeba coś już wiedzieć o USB. Za książkę Daniluka możesz się
brać jak już przeczytasz powyższy link.
Z drugiej strony reakcja jest jaka jest, bo Twoje posty ocierają się o
spamowanie/trollowanie. Zadajesz pytania, na które nie bardzo jest jak
odpowiedzieć, bo nie odrobiłeś pracy domowej i pytasz chaotycznie. Niemniej
USB proste nie jest, szczególnie jak ktoś bierze książkę Daniluka na
pierwszy ogień, co Cię trochę usprawiedliwia :)
--
Grzegorz Niemirowski
http://www.grzegorz.net/
OE PowerTool i Outlook Express: http://www.grzegorz.net/oe/
Uptime: 0 days, 11 hours, 24 minutes and 43 seconds
-
17. Data: 2012-06-04 00:26:24
Temat: Re: GUID + USB + HID + MOUSE
Od: "Grzegorz Niemirowski" <g...@p...onet.pl>
identyfikator: 20040501 <N...@g...pl> napisał(a):
> nie mógłby mi Ktoś tu napisać tego w punktach,
> 1. dołączam do USB myszkę
> i co dalej? tylko konretami... wiem, że sporo wymagam ;o)
Myszka jest enumerowana. Windows widzi interfejs (w sensie interfejsu USB,
nie interfejsu dostarczanego przez sterownik) o klasie HID (0x03) oraz
protokole myszy (x02). Tutaj kłania się rozdział E.7. w dokumencie
http://www.usb.org/developers/devclass_docs/HID1_11.
pdf Dzięki temu Windows
wie, że to mysz HID i ładuje dla niej sterownik. Z tego sterownika dostaje
informacje o położeniu myszy. Komunikacja odbywa się za pomocą tzw. raportów
HID. W raporcie myszy masz informacje o zmianie położenia w kierunku X i Y
oraz o stanie przycisków.
--
Grzegorz Niemirowski
http://www.grzegorz.net/
OE PowerTool i Outlook Express: http://www.grzegorz.net/oe/
Uptime: 0 days, 11 hours, 41 minutes and 54 seconds
-
18. Data: 2012-06-04 08:33:33
Temat: Re: GUID + USB + HID + MOUSE
Od: g...@s...invalid (Adam Wysocki)
Grzegorz Niemirowski <g...@p...onet.pl> wrote:
> Z drugiej strony reakcja jest jaka jest, bo Twoje posty ocierają się o
> spamowanie/trollowanie.
Bo to rasowy troll. Zobacz jego działalność na pl.misc.elektronika...
--
Gof
-
19. Data: 2012-06-04 17:32:06
Temat: Re: GUID + USB + HID + MOUSE
Od: "identyfikator: 20040501" <N...@g...pl>
dzięki wszystkim, dziś nie mam już głowy do myślenia na ten temat, odezwę
się jak przetrawię powyższe informacje.
-
20. Data: 2012-06-04 17:38:10
Temat: Re: GUID + USB + HID + MOUSE
Od: "identyfikator: 20040501" <N...@g...pl>
dodam tylko, że chciałbym coś odpalić na darmowym Borland C++ 5.5... ale
zupełnie nie wiem jak to zrobić, rozumiem, że muszę zassać WDK, trochę
wkurzające jest to, że WDK trzeba instalować, nie wiadomo ile zajmuje a jak
ktoś ma zapchany dysk to jest problem... jeden gość ze zleceń napisał mi
pewien kod z libusb, ale się później obraził i nie dokończył... chciałem to
wrzucić na moją stronkę, ale skoro się obraził to nie mogę tego zrobić... ot
take fakty.