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, potrebbe essere necessario impedire la visualizzazione di determinati dispositivi in Gestione dispositivi. Ad esempio, una scheda madre potrebbe avere un controller CardBus con uno slot non accessibile dall'utente. Poiché l'utente non può usare lo slot, non si vuole che Gestione dispositivi visualizzare 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 all'interno di 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 da un driver

I driver hanno due modi per contrassegnare un driver come nascosto:

  • Un driver di funzione o un driver di filtro delle funzioni 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 di PNP_DEVICE_DONT_DISPLAY_UI in IoStatus.Information su TRUE nella routine di invio del driver.

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

Nascondere i dispositivi tramite 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 funzionanti e avviati. In Windows XP e versioni successive di Windows è anche possibile 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 è interrotto 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 di "decodifica" (0x2) non ha alcuna rilevanza per i dispositivi descritti tramite metodi di _ADR. Gli esempi di codice precedenti funzionano anche senza il set di bit di decodifica. I writer BIOS devono tenere traccia dello stato di decodifica solo per i dispositivi descritti tramite metodi di _HID.