Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem Třídy PnP

Snad jsem zvolil kategorii dobře...

Zajímalo by mě, kde na netu najdu popsanou specifikaci PnP tříd (příklad *PNP0000 - programovatelný řadič přerušení, co to dělá, jak se to konfiguruje, jaký nastavení to používá, co to žere, kde to spí...)

Mrkvosoftí detekce hardwaru mě totiž nanejvýš irituje tím, jak pro každou komponentu zobrazí "systém našel nový hardware - Neznámé zařízení - a hledá k němu ovládače". Když jsem si projížděl INF soubory, tak drtivá většina zařízení, který mě zajímají, má společnou konfiguraci, používá společný ovládač a liší se pouze VID, PID a jménem, který mu Mrkvosoft přiřadí.

Nebo, pokud by někdo věděl, jak udělat "obecnou konfiguraci PC", která by používala "generické ovládače" (něco se mi už povedlo zavést do klíče HKLM\Enum\Root), byl bych mu velmi zauzlován :-)

Pavle? Netušíš?

Za případné rady velmi velmi děkuji.

EDIT: Jo, Google znám a používám, ale vůbec nemám tušení, co do něj zadat. Pár věcí jsem zkoušel, ale PNP tranzistory nejsou to, co bych hledal :-(

Jsou zobrazeny jen nové odpovědi. Zobrazit všechny
Předmět Autor Datum
PNPcislo je len informacne (operacnemu systemu ho oznami ovladac alebo BIOS, samotne zariadenie tuto…
MM.. 30.04.2007 13:37
MM..
Nejde pouze o USB zařízení. Pokud jsem to dobře pochopil, na začátku se najde pár zařízení s označen…
mia 30.04.2007 14:59
mia
... mam pocit ze chces vpodstate len to, aby Win HW zdetekoval, nainstalil to na co ma ovladace, a p…
MM.. 30.04.2007 16:39
MM..
Ano, v podstatě potřebuju to, co píšeš, tzn narvat tam co nejvíc zařízení, který wokna znají a mají…
mia 30.04.2007 19:34
mia
Ako ti ten list pomoze riesit tvoj problem? P.S. linka od pavla vyssie (plug and play howto) je sko… poslední
MM.. 30.04.2007 23:55
MM..

PNPcislo je len informacne (operacnemu systemu ho oznami ovladac alebo BIOS, samotne zariadenie tuto informaciu neobsahuje). Zariadenie obsahuje informaciu tuto: u PCI zariadeni Vendor ID (VID) a Device ID (DID), pripadne este k tomu subvendor ID, a subdevice ID, podla toho windows hlada spravne .inf. Tieto vsetky ID si OS precita zo zariadenia z PCI config space (vid pci specifikaciu).
P.S. Windows musi najprv zobrazit ze nasiel "nezname zariadenie", ptz. dokial nenajde spravne .inf, tak vie len VID/DID, a podla tych cisel nevie co to za zariadenie nasiel (je pre WIndows nezname), kym nenajde spravny .inf (v .inf je potom uvedeny nazov zariadenia odpovedajuci tomu VID a DID). Win by mohol napisat "naslo sa zariadenie VID:1234h DID:1234h", ale BFU by tym zbytocne len zmiatol a expert vie co do PC stracil takze vie co Windows nasiel a nepotrebuje vypisovat VID a DID.

P.S. k tvojmu problemu: podla inej otazky myslim ze ti ide o usb controllery, co su vsetko PCI zariadenia (aj ked su v chipsete), preto pisem o PCI zariadeniach.
Ak si si isty ze pouzivaju uplne rovnaky ovladac (ale rovnaky nazov suboru este neznamena ze je aj rovnaky obsah suboru), tak si do .inf pridaj vsetky vendorID a deviceID a budes mat jeden ovladac pre vsetky (ak pouzivaju tie zariadenia 100% rovnake subory/kod ovladaca tak by to malo fungovat)

este P.S.3. zariadenie v PCI config space ma informaciu "class" zariadenia, podla ktoreho sa da odlisit ci sa napr. jedna o IDE kontroller alebo sietovku apod., ale nie je to PNPcislo. V .inf by mal byt uvedeny tusim aj tento PCI-class, ale USB kontrollery maju ho tusim vsetky rovnaky (neviem zhlavy musel by som pozriet ku kazdemu chipsetu datasheet).

P.S.4. to na co sa pytas na zaciatku otazky je moc komplexne, stranka kde by boli rozpisane vsetky neexistuje, ako sa to programuje je popisane v roznych specifikaciach ktore je uz aj tazko najst na inete, a neprecital by si to vsetko ani do roku 2010. PCI zariadenia sa programuju kazde inac zavisi od vyrobcu konkretneho zariadenia, kvoli tomu su nutne ovladace.

Nejde pouze o USB zařízení. Pokud jsem to dobře pochopil, na začátku se najde pár zařízení s označením *PNPXXXX, za XXXX se vždy dosazuje čtyřmístné číslo. Kde 0000 je AT programovatelný řadič přerušení, 0100 AT časovač, 0200 AT řadič DMA, 0303 IBM 101/202 klávesnice (nepotřebuju aby tam byla), 0600 standardní řadič HDD, 0800 reproduktor, 0C01 systémová deska, (ale ne všude se najde 0C00 PnP BIOS, někde je 0C05 APM BIOS, dá se nahradit PnP Biosem, pokud v infu zadám matching device 0C05,0C00)... Tohle se mi objeví v první fázi detekce HW, pokud v HKLM vyprázdním klíč Enum. Naleze to do HKLM\Enum\Root. Ale už to neobjeví třeba 0A03 Sběrnice PCI (proč? je to taky součást základní desky a má to taky své PNP číslo). Ve druhé fázi si to nainstaluje ovládače pro systémové věci bez dotazu, jestli chci ovládač hledat. Teprve pak to najde sběrnici PCI a další věci, pozor, ale tady už jdou dotazy na vyhledání konkrétního typu hardware. Třeba PCI Bridge. Neinstaluje se nic (No_DRV), ale musíš odklepnout dotaz woken, jestli chceš hledat ovládač... To samý USB. Jsou tři typy, z toho třetí typ (EHCI) neznají wokna vůbec, OHCI mají desky s chipsetem SiS. VIA a Intel používají UHCI. Podle VID & PID poznají wokna, že se jedná o (např.) VIA 3038 USB host controller, ale stejně chtějí, abych jim odklepnul, že mají hledat ovládač.... což mě neskutečně se*re, páč nevím jak tyhle hlášky a dotazy zrušit. CDROM se instaluje bez dotazu a bez upozornění, prostě se tam objeví bez nějaké hlášky "systém našel nový hardware..." Zkoumal jsem inf pro cdrom, je tam položka NoSetupUI, SilentInstall... tohle jsem zkoušel zadat do infu pro USB, ale nejde to, dělá to jakoby to tam vůbec nebylo.

Takže jsem vykoumal, že leccos se dá nechat v HKLM\Enum\Root a systém to bere, jakože to tam je a chodí (vyzkoušeno na pár kompech). Ale nejde mi tam (zatím) nahodit PCI sběrnice a samozřejmě USB. Ano, USB jsem tam dostal, když jsem pozměnil Matching device, tvářilo se, že tam je, ale nechodilo do té doby, dokud jsem mu nezměnil přerušení. Pak si to dokonce našlo i RootHub, ale byl u něj žlutej vykřičník a nechodil.

Pokud jsem zkoušel instalovat W98 na různejch mašinách (od jistý doby nedělám nic jinýho, než že instaluju W98...), jako ovládač pro USB to mělo vždy UHCD.SYS, USBD.SYS, USBHUB.SYS a USBUI.DLL. Až na jednu vyjímku, tou byl SiS čipset a OHCI USB, tam si to místo UHCD.SYS zavedlo OPENHCI.SYS.

PS: já chápu, že upozornění a hledání driveru je z toho důvodu, abys mohl podstrčit woknům jinej drajvr, tohle není špatná věc, ale já hledám způsob, jak to odrbat, aby se to nainstalovalo v tichosti samo, nebo aby se nejraději nic neinstalovalo a použilo to co už tam je.

... mam pocit ze chces vpodstate len to, aby Win HW zdetekoval, nainstalil to na co ma ovladace, a pre HW na ktory nema ovladace aby neinstaloval (aby nevyskocilo to okno) a v spravcovi zariadeni bude ten HW s vykricnikom a nebude fungovat. To by mohlo ist ja nepoznam Windowsie dll ktore robia to vyskakovacie okno, ale takto si zatial otazku nepolozil ;-) (sem a do googlu).
Ak tie USB kontrollery (ne)funguju tak ako to popisujes tak uz mam pocit ze si z tych Win vyhadzal moc vela, aj nieco co je potrebne pre korektnu konfiguraciu PCI zariadeni.

Ano, v podstatě potřebuju to, co píšeš, tzn narvat tam co nejvíc zařízení, který wokna znají a mají pro ně ovládač (ty ovládače překopírovat na patřičné místo) a na ostatní kašlat. O to vyskakovací okno se stará knihovna SetupX.dll ve spolupráci se Setup4.dll. Ty stačí před startem přejmenovat, pak se neprovede detekce nového hardware a systém bere to, co už tam je. Teoreticky by stačil nějaký "patch" SetupX.dll. Co se týká tříd PnP, našel jsem tohle:
http://lists.freedesktop.org/archives/hal-commit/20 06-September/002699.html
kde je to v jakýmsi "listu" docela přehledně vypsaný, zkusím se tím probrat.

Ako ti ten list pomoze riesit tvoj problem?

P.S. linka od pavla vyssie (plug and play howto) je skor zaujimavejsia ako ten list.

P.S. skus tam tie setup-dll dat nazad, rozchodit USB kontrollery (nainstalit ovladace apod) a az bude USB fungovat potom tie dll skus zas premenovat.

Zpět do poradny Odpovědět na původní otázku Nahoru