Sdílet prostřednictvím


Skrytí zařízení ve Správci zařízení

Ve výchozím nastavení zobrazuje Správce zařízení stav všech zařízení v počítači. V některých situacích můžete chtít zabránit zobrazení určitých zařízení ve Správci zařízení. Základní deska může mít například ovladač CardBus s slotem, který není přístupný uživatelem. Protože uživatel nemůže použít slot, nechcete, aby Správce zařízení zobrazoval žádné informace o zařízení.

Pokud chcete skrýt zařízení ve Správci zařízení, můžete ho označit jako skryté zařízení. Správce zařízení obvykle nezobrazuje skrytá zařízení. (Všimněte si však, že uživatelé můžou toto nastavení přepsat a zobrazit všechna zařízení ve Správci zařízení, a to i skryté. Další informace o přepsání tohoto nastavení naleznete v tématu Zobrazení skrytých zařízení.)

Zařízení můžete označit jako skryté dvěma způsoby: v ovladači zařízení nebo pomocí systému ACPI BIOS.

Skrytí zařízení z vnitřní části ovladače

Řidiči mají dva způsoby, jak označit ovladač jako skrytý:

  • Ovladač funkce nebo ovladač filtru funkcí může požádat operační systém o skrytí zařízení, které bylo úspěšně spuštěno, tím, že reaguje na IRP_MN_QUERY_PNP_DEVICE_STATE IRP. Při příchodu IRP musí ovladač nastavit bit PNP_DEVICE_DONT_DISPLAY_UI v IoStatus.Information na TRUE v rutině odeslání ovladače.

  • Ve Windows XP a novějších verzích operačních systémů Windows může ovladač sběrnice nebo ovladač filtru sběrnice skrýt jakékoli zařízení, spuštěné nebo jiné, a to reagováním na IRP_MN_QUERY_CAPABILITIES IRP. Při příjezdu IRP musí ovladač nastavit člen Parameters.DeviceCapabilities.NoDisplayInUI na TRUE v dispečerské rutině ovladače. V některých případech může být nutné, aby ovladač filtru sběrnice tento bit nastavil v rutině dokončení. Tento dodatečný krok je nutný, když dispečerská rutina podkladního sběrnicového ovladače nesprávně vymaže všechna pole schopností, která nastavují ostatní ovladače.

Skrytí zařízení pomocí systému ACPI BIOS

Zařízení můžete označit jako skryté v systému ACPI BIOS. Systém BIOS může zařízení vystavit metodu _STA. Metoda _STA vrátí bitovou masku. Bit 2 (maska 0x4) určuje, zda má správce zařízení zobrazit zařízení jako viditelné ve výchozím nastavení. Tento bit by měl být 1, pokud by mělo být zařízení viditelné a 0 jinak.

Například následující příklad kódu ukazuje, jak by byl skryt kontrolér USB na kořenové sběrnici.

Device(PCI0) // Root PCI bus
_HID *PNP0A03 
...
    Device(UCTL)  // USB controller
    _ADR 0xddddffff // dddd = device, ffff = function
    _STA 0xB // Device present, but not shown

V systému Microsoft Windows 2000 můžete skrýt pouze spuštěná a funkční zařízení. Ve Windows XP a novějších verzích Windows můžete také skrýt poškozená zařízení. Bit 3 (maska 0x8), který je vrácen metodou _STA označuje, jestli zařízení funguje správně. Tento bit je 1, pokud zařízení funguje správně a v opačném případě je 0. Například následující příklad kódu ukazuje, jak systém BIOS označuje, že je řadič USB poškozený a měl by být skrytý:

Device(PCI0) // Root PCI bus 
_HID *PNP0A03 
...
    Device(UCTL) // USB controller
    _ADR 0xddddffff //  dddd = device, ffff = function
    _STA 0x3 // Present, but broken and not shown 

Poznámka Bit "dekódování" (0x2) nemá žádný význam pro zařízení, která jsou popsána prostřednictvím _ADR metod. Předchozí příklady kódu také fungují bez dekódovací sady bitů. Zapisovače systému BIOS musí sledovat stav dekódování pouze pro zařízení popsaná prostřednictvím _HID metod.