-
Path: news-archive.icm.edu.pl!news.gazeta.pl!newsfeed.pionier.net.pl!news.icpnet.pl!.
POSTED!not-for-mail
From: "Grzegorz Niemirowski" <g...@p...onet.pl>
Newsgroups: pl.comp.programming
Subject: Re: GUID + USB + HID + MOUSE
Date: Sun, 3 Jun 2012 23:54:53 +0200
Organization: ICP News Server
Lines: 56
Message-ID: <jqgmfi$ct3$1@news.icpnet.pl>
References: <jqfqr8$8qm$1@node2.news.atman.pl> <jqg1nh$r58$1@news.icpnet.pl>
<jqg2e8$g5q$1@node2.news.atman.pl>
NNTP-Posting-Host: 031011139062.warszawa.vectranet.pl
Mime-Version: 1.0
Content-Type: text/plain; format=flowed; charset="iso-8859-2"; reply-type=response
Content-Transfer-Encoding: 8bit
X-Trace: news.icpnet.pl 1338760498 13219 31.11.139.62 (3 Jun 2012 21:54:58 GMT)
X-Complaints-To: a...@i...pl
NNTP-Posting-Date: Sun, 3 Jun 2012 21:54:58 +0000 (UTC)
X-Priority: 3
X-MSMail-Priority: Normal
X-Newsreader: OE PowerTool 4.5
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.6157
X-WWW: http://www.grzegorz.net/
Xref: news-archive.icm.edu.pl pl.comp.programming:197586
[ ukryj 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
Następne wpisy z tego wątku
- 03.06.12 23:59 Grzegorz Niemirowski
- 04.06.12 00:07 Grzegorz Niemirowski
- 04.06.12 00:26 Grzegorz Niemirowski
- 04.06.12 08:33 Adam Wysocki
- 04.06.12 17:32 identyfikator: 20040501
- 04.06.12 17:38 identyfikator: 20040501
- 04.06.12 18:32 alter amonu dawn, zn, j NOMA
- 04.06.12 18:52 alter amonu
- 04.06.12 19:09 identyfikator: 20040501
- 04.06.12 20:51 Przemek O
- 04.06.12 22:23 Alter Amonu dawn. zn. j. NOMA
- 05.06.12 12:18 Adam Wysocki
- 05.06.12 19:02 Waldek M.
- 05.06.12 20:38 identyfikator: 20040501
- 06.06.12 07:40 Adam Wysocki
Najnowsze wątki z tej grupy
- Popr. 14. Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- Arch. Prog. Nieuprzywilejowanych w pełnej wer. na nowej s. WWW energokod.pl
- 7. Raport Totaliztyczny: Sprawa Qt Group wer. 424
- TCL - problem z escape ostatniego \ w nawiasach {}
- Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- testy-wyd-sort - Podsumowanie
- Tworzenie Programów Nieuprzywilejowanych Opartych Na Wtyczkach
- Do czego nadaje się QDockWidget z bibl. Qt?
- Bibl. Qt jest sztucznie ograniczona - jest nieprzydatna do celów komercyjnych
- Co sciaga kretynow
- AEiC 2024 - Ada-Europe conference - Deadlines Approaching
- Jakie są dobre zasady programowania programów opartych na wtyczkach?
- sprawdzanie słów kluczowych dot. zła
- Re: W czym sie teraz pisze programy??
- Re: (PDF) Surgical Pathology of Non-neoplastic Gastrointestinal Diseases by Lizhi Zhang
Najnowsze wątki
- 2025-02-01 "Nie kupujcie samochodów elektrycznych
- 2025-02-01 jakie małe auto duże w środku :-)
- 2025-02-01 Re: pytanie do oponiarzy lub szybkojeżdzących (opony Hankook Ventus Prime, S1 Evo, alternatywy)
- 2025-02-01 T-1000 was here
- 2025-02-01 Warszawa => DevOps Engineer <=
- 2025-02-01 Katowice => Administrator IT - Operating Systems and Virtualization <=
- 2025-02-01 Warszawa => Spedytor międzynarodowy <=
- 2025-02-01 Śmierć mózgu a narządy do pobrania
- 2025-01-31 A niektórym to naprawdę zależy na ekologi w miastach LPG POWRACA ;-)
- 2025-01-31 Lublin => Programista Delphi <=
- 2025-01-31 Łódź => Programista NodeJS <=
- 2025-01-31 Wrocław => Senior SAP Support Consultant (SD) <=
- 2025-01-31 Warszawa => Full Stack web developer (obszar .Net Core, Angular6+) <=
- 2025-01-31 Gdańsk => iOS Developer (Swift experience) <=
- 2025-01-31 Kraków => UX Designer <=