Condividi tramite


Nascondere i dispositivi da Gestione dispositivi

Per impostazione predefinita, Gestione dispositivi mostra lo stato di ogni dispositivo in un computer. In alcune situazioni, potresti voler impedire la visualizzazione di determinati dispositivi in Gestione dispositivi. Ad esempio, una scheda madre potrebbe avere un controller CardBus con uno slot che non è accessibile dall'utente. Poiché l'utente non può usare lo slot, non si vuole che Gestione dispositivi visualizzi informazioni sul dispositivo.

Per nascondere un dispositivo in Gestione dispositivi, è possibile contrassegnare il dispositivo come dispositivo nascosto . In genere, Gestione dispositivi non visualizza i dispositivi nascosti. Si noti, tuttavia, che gli utenti possono eseguire l'override di questa impostazione e visualizzare tutti i dispositivi in Gestione dispositivi, anche quelli nascosti. Per altre informazioni su come eseguire l'override di questa impostazione, vedere Visualizzazione di dispositivi nascosti.)

Esistono due modi per contrassegnare il dispositivo come nascosto: all'interno del driver del dispositivo o usando il BIOS ACPI.

Nascondere i dispositivi dall'interno di un driver

Gli autisti hanno due modi per contrassegnare un driver come nascosto:

  • Un driver di funzione o un driver filtro funzione può chiedere al sistema operativo di nascondere un dispositivo avviato correttamente rispondendo al IRP_MN_QUERY_PNP_DEVICE_STATE IRP. Quando arriva l'IRP, il driver deve impostare il bit PNP_DEVICE_DONT_DISPLAY_UI di IoStatus.Information su TRUE nella routine di dispatch del driver.

  • Su Windows XP e versioni successive dei sistemi operativi Windows, un driver del bus o un driver filtro del bus può nascondere qualsiasi dispositivo, avviato o in altro modo, rispondendo al IRP_MN_QUERY_CAPABILITIES IRP. All'arrivo dell'IRP, il driver deve impostare il membro Parameters.DeviceCapabilities.NoDisplayInUI su TRUE nella routine di dispatch del driver. In alcuni casi, un driver del filtro bus potrebbe dover impostare questo bit in una routine di completamento. Questo passaggio aggiuntivo è necessario quando la routine dispatch del conducente del bus sottostante cancella erroneamente tutti i campi di funzionalità impostati da altri driver.

Nascondere i dispositivi usando il BIOS ACPI

È possibile contrassegnare un dispositivo come nascosto nel BIOS ACPI. Il BIOS può esporre un metodo _STA per il dispositivo. Il metodo _STA restituisce una maschera di bit. Bit 2 (maschera 0x4) specifica se Gestione dispositivi deve rendere visibile il dispositivo per impostazione predefinita. Questo bit deve essere 1 se il dispositivo deve essere reso visibile e 0 in caso contrario.

Ad esempio, l'esempio di codice seguente mostra come un controller USB nel bus radice verrebbe nascosto.

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

In Microsoft Windows 2000 è possibile nascondere solo i dispositivi di lavoro avviati e funzionanti. In Windows XP e versioni successive di Windows puoi anche nascondere i dispositivi interrotti. Bit 3 (maschera 0x8) restituito dal metodo _STA indica se un dispositivo funziona correttamente. Questo bit è 1 se il dispositivo funziona correttamente ed è 0 in caso contrario. Ad esempio, l'esempio di codice seguente mostra come un BIOS indichi che un controller USB è danneggiato e deve essere nascosto:

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 

Nota: il bit "decodifica" (0x2) non ha alcuna rilevanza per i dispositivi descritti tramite metodi _ADR. Gli esempi di codice precedenti funzionano anche senza il set di bit di decodifica. I writer del BIOS devono tenere traccia dello stato di decodifica solo per i dispositivi descritti utilizzando i metodi _HID.