Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
La reimpostazione e il ripristino della radio Bluetooth sono una tecnologia in Windows 10 versione 1803 e successive che introduce un solido meccanismo di reimpostazione e ripristino per le radio Bluetooth. Questo meccanismo consente alle radio Bluetooth di eseguire il ripristino da errori hardware che causano malfunzionamenti, perdita di connettività o mancata risposta ai comandi operativi. L'obiettivo è quello di ripristinare automaticamente la radio, rendendo l'esperienza utente senza problemi e riducendo la probabilità di richiedere un riavvio del sistema.
La reimpostazione e il ripristino della radio Bluetooth possono essere implementati con o senza dipendenze del firmware. I partner hardware possono estendere i meccanismi di reimpostazione basati su software disponibili in tutti i PC Windows con meccanismi di reimpostazione a livello di dispositivo o firmware supportati per aumentare la probabilità di un ripristino riuscito.
Importante
Questo argomento è destinato agli sviluppatori. Se sei un cliente che riscontra problemi bluetooth, vedi Risolvere i problemi Bluetooth in Windows 10.
Scenari di ripristino e reimpostazione Bluetooth
Esistono tre ampie categorie di problemi in cui vengono avviati la reimpostazione e il ripristino:
Errori di enumerazione del bus: l'enumerazione radio non riesce o rienumerazione dal bus sottostante (in genere USB o UART), come indicato da uno stato di errore visibile (bang giallo) in Gestione dispositivi, che potrebbe essere sintomatico degli errori hardware sottostanti.
Errori di enumerazione del driver: la radio Bluetooth si trova in uno stato di errore dopo l'enumerazione corretta dal bus sottostante. Questo stato di errore si verifica in genere durante la compilazione dello stack di driver per la radio. Ad esempio, quando un filtro o un driver di funzione viene installato nel nodo del dispositivo radio Bluetooth. Gli errori possono verificarsi se un driver rileva un errore durante una o più operazioni di avvio e di conseguenza segnala un errore PnP. Un esempio di tale operazione potrebbe essere un download del firmware nel dispositivo.
Errori di non enumerazione: il dispositivo non è in uno stato di errore, ma non è operativo come determinato dallo stack di driver. Questi errori non rientrano nel percorso di enumerazione e potrebbero essere errori critici specifici del trasporto o errori specifici del dispositivo, ad esempio un errore irreversibile del firmware. In questi casi vengono usati i meccanismi di ripristino e ripristino Bluetooth seguenti.
Meccanismi di reimpostazione e ripristino
Anche se esistono approcci diversi per il ripristino da uno stato di errore, Bluetooth usa un meccanismo di recupero basato su ACPI standardizzato per tentare di ripristinare la radio a uno stato di lavoro.
GUID_DEVICE_RESET_INTERFACE_STANDARD definisce due livelli di reimpostazione. I meccanismi di reimpostazione funzionano solo per i dispositivi interni, in modo che le radio Bluetooth collegabili esternamente, ad esempio i dongles, non siano supportate. I meccanismi di reimpostazione richiedono il supporto sia in Windows (in genere dallo stack di driver di funzione) che nel firmware sottostante (in genere nel BIOS ACPI) per eseguire effettivamente la reimpostazione. Il meccanismo di reimpostazione effettivo è specifico del sistema.
Reimposta livello | Implementazione |
---|---|
Reimpostazione del dispositivo a livello di funzione (FLDR) | L'operazione di reimpostazione è limitata a un dispositivo specifico e non è visibile ad altri dispositivi. Non esiste alcuna rienumerazione. I driver di funzione devono presupporre che l'hardware sia tornato allo stato originale dopo l'operazione. Lo stato intermedio non viene mantenuto. |
Reimpostazione del dispositivo a livello di piattaforma (PLDR) | L'operazione di reimpostazione influisce su un dispositivo specifico e su tutti gli altri dispositivi connessi tramite la stessa linea di alimentazione o reimpostazione. L'operazione di reimpostazione fa sì che il dispositivo venga segnalato come mancante dal bus e rienumerato. Questo tipo di reimpostazione ha l'impatto maggiore sul sistema perché tutti i dispositivi che condividono la risorsa tornano allo stato originale. |
Per supportare FLDR , è necessario definire un metodo __RST all'interno dell'ambito del dispositivo, come descritto in Dettaglio nel firmware ACPI: reimpostazione a livello di funzione.
Per supportare PLDR , è necessario definire un metodo __RST or__PR3 nell'ambito del dispositivo, come descritto in dettaglio nel firmware ACPI: reimpostazione a livello di piattaforma. Se si usa un metodo PR3 , ACPI usa il meccanismo del ciclo di alimentazione D3Cold per reimpostare. Il meccanismo del ciclo di alimentazione D3Cold emula la rimozione dell'alimentazione dal dispositivo e quindi il ripristino. Se altri dispositivi condividono lo stesso binario di alimentazione, vengono reimpostati anche. Se an__RST metodo viene definito e a cui fa riferimento un _PRR (PowerResource), tutti i dispositivi che usano powerResource sono interessati.
Poiché PLDR funziona solo per i dispositivi interni, deve essere dichiarato come tale in ACPI. Per i dispositivi USB, per specificare una porta interna (non visibile dall'utente) e può essere connessa a un dispositivo integrato, configurare l'UPC . PortIsConnectable byte per 0xFF e the__PLD. UserVisible bit a 0.
Se il meccanismo _PR3 (D3Cold) viene usato per PLDR, assicurarsi che gli scenari come SystemWake e DeviceWake continuino a funzionare. Nominalemente, ciò significa che sono presenti risorse di alimentazione appropriate definite per D2, e.g._PR2. La tabella seguente è una guida utile:
Stato di alimentazione | Risorsa ACPI | Comportamento |
---|---|---|
D2 | _PR2 | Qualsiasi potenza o orologio necessario per la funzionalità ridotta definita dalla classe di questo stato. |
Accesso frequente D3 (obbligatorio) | _PR2 | Le stesse risorse dello stato superiore successivo supportate (D2, D1 o D0). |
D3Cold | _PR3 | Solo l'alimentazione o gli orologi necessari per la visualizzazione del dispositivo sul bus e rispondere a un comando specifico del bus. |