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.
Usare il driver USB fornito da Microsoft (Usbser.sys) per i dispositivi di controllo cdc (Communications And Communications Device Class). Usare i driver inclusi in Windows ogni volta che è possibile.
Importante
Questo articolo è destinato ai produttori di dispositivi di controllo CDC. Se sei un cliente che sta riscontrando problemi con USB, consulta Risolvere i problemi di USB-C in Windows
Usbser.sys viene implementato usando Kernel-Mode Driver Framework. Il driver supporta plug and play e le funzionalità di risparmio energia come la sospensione selettiva USB.
Le applicazioni UWP (Universal Windows Platform) possono usare le API fornite dallo spazio dei nomi Windows.Devices.SerialCommunication , consentendo alle app di comunicare con i dispositivi CDC.
Usbser.sys'installazione
Caricare il driver integrato fornito da Microsoft (Usbser.sys) per le comunicazioni e il dispositivo di controllo CDC.
Nota
Se si sta provando a installare un driver di classe di dispositivo USB incluso in Windows, non è necessario scaricare il driver. Windows installa automaticamente questi driver. Se Windows non installa il driver, contattare il produttore del dispositivo. Per un elenco dei driver di classe di dispositivo USB inclusi in Windows, vedi Driver di classe di dispositivi USB inclusi in Windows.
Usbser.inf si trova nella %Systemroot%\INF
directory . Questo file di informazioni di installazione (INF) carica Usbser.sys come oggetto dispositivo funzionale (FDO) nello stack di dispositivi. Se il dispositivo appartiene alla classe di dispositivi di controllo CDC e comunicazioni, Usbser.sys viene caricato automaticamente. Non è necessario scrivere il proprio file INF per fare riferimento al driver. Windows carica il driver in base alla corrispondenza di un ID compatibile, simile ad altri driver di classe di dispositivo USB inclusi in Windows.
USB\Class_02
USB\Class_02&SubClass_02
Per caricare automaticamenteUsbser.sys , impostare il codice della classe su 02 e il codice della sottoclasse su 02 nel descrittore di dispositivo. Con questo approccio, non è necessario distribuire i file INF per il dispositivo perché il sistema usa Usbser.inf. Per altre informazioni, vedere Definizioni di classe per i dispositivi di comunicazione 1.2.
Se il dispositivo specifica il codice di classe 02 ma un codice di sottoclasse diverso da 02, Usbser.sys non viene caricato automaticamente. Il gestore Plug and Play tenta di trovare un driver. Se Windows non trova un driver appropriato, il dispositivo potrebbe non avere un driver caricato. Potrebbe essere necessario caricare il proprio driver o scrivere un file INF che fa riferimento a un altro driver in-box.
Se il dispositivo specifica i codici di classe e sottoclasse 02 e si vuole caricare un altro driver invece di Usbser.sys, scrivere un file INF. Nel file INF specificare l'ID hardware del dispositivo e il driver da installare.
Configurare la sospensione selettiva per Usbser.sys
Usbser.sys supporta la sospensione selettiva USB. Questo driver consente al dispositivo usb-seriale collegato di entrare in uno stato di basso consumo quando non è in uso, mentre il sistema rimane nello stato S0. Quando la comunicazione con il dispositivo riprende, il dispositivo lascia lo stato di sospensione e riprende lo stato di lavoro. La funzionalità è disabilitata per impostazione predefinita, ma può essere abilitata e configurata impostando la voce IdleUsbSelectiveSuspendPolicy in questa chiave del Registro di sistema:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USB\<hardware id>\<instance id>\Device Parameters
Per configurare le funzionalità di risparmio energia di Usbser.sys, impostare il parametro IdleUsbSelectiveSuspendPolicy su:
Valore | Comportamento |
---|---|
0x00000001 |
Immettere la sospensione selettiva in caso di inattività, ovvero quando non sono presenti trasferimenti di dati attivi da o verso il dispositivo. |
0x00000000 |
Immettere la sospensione selettiva solo quando non sono presenti handle aperti per il dispositivo. |
Aggiungi la voce in uno dei due modi seguenti:
Scrivere un INF che faccia riferimento all'installazione di INF e aggiungere la voce del Registro di sistema nel modulo di protezione hardware. Sezione AddReg .
Descrivere la voce del Registro di sistema in un descrittore di funzionalità del sistema operativo delle proprietà estese. Aggiungere una sezione della proprietà personalizzata che imposta il campo bPropertyName su una stringa Unicode:
IdleUsbSelectiveSuspendPolicy
. Impostare wPropertyNameLength su 62 byte. Impostare il campo bPropertyData su0x00000001
o0x00000000
. I valori delle proprietà sono memorizzati come numeri interi little-endian a 32 bit.Per altre informazioni, vedere Descrittori del sistema operativo Microsoft.
Sviluppare applicazioni Windows per un dispositivo USB CDC
Un'app di Windows invia richieste a Usbser.sys usando lo spazio dei nomi Windows.Devices.SerialCommunication . Lo spazio dei nomi definisce le classi di Windows Runtime che comunicano con un dispositivo USB CDC tramite una porta seriale o un'astrazione di una porta seriale. Le classi consentono di individuare dispositivi seriali, leggere e scrivere dati e controllare proprietà specifiche della serie per il controllo del flusso, ad esempio l'impostazione della velocità baud e degli stati del segnale.