Condividi tramite


Driver seriale USB (Usbser.sys)

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:

  1. 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 .

  2. 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 su 0x00000001 o 0x00000000. 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.