Condividi tramite


Driver seriale USB (Usbser.sys)

Importante

Questo argomento è destinato ai programmatori. Se si verificano problemi USB, vedere Risolvere i problemi usb comuni

Usare il driver USB fornito da Microsoft (Usbser.sys) per il dispositivo di controllo CDC e comunicazioni. Microsoft incoraggia l'utente a usare i driver inclusi in Windows ogni volta che possibile.

Versioni supportate

  • Windows 11
  • Windows 10

Si applica a

  • Produttori di dispositivi di dispositivi di controllo CDC

In Windows 10 il driver è stato riscritto usando Kernel-Mode Driver Framework, migliorando la stabilità complessiva del driver.

  • Miglioramento Plug and Play e risparmio energia dal driver.
  • Aggiunta di funzionalità di risparmio energia, ad esempio sospensione selettiva USB.

Inoltre, le applicazioni UWP possono ora usare le API fornite dallo spazio dei nomi Windows.Devices.SerialCommunication che consente alle app di comunicare con questi dispositivi.

installazione Usbser.sys

Caricare il driver in box fornito da Microsoft (Usbser.sys) per il dispositivo di controllo CDC e comunicazioni.

Nota

Se si tenta di installare un driver di classe di dispositivo USB incluso in Windows, non è necessario scaricare il driver. Vengono installati automaticamente. Se non vengono installati automaticamente, contattare il produttore del dispositivo. Per l'elenco dei driver di classe di dispositivo USB inclusi in Windows, vedere Driver di classe di dispositivo USB inclusi in Windows.

A partire da Windows 10, Usbser.inf è stato aggiunto alla directory %Systemroot%\INF, che carica Usbser.sys come oggetto dispositivo funzionale (FDO) nello stack di dispositivi. Se il dispositivo appartiene alla classe di dispositivo di controllo CDC e comunicazioni, Usbser.sys viene caricato automaticamente. Non è necessario scrivere il proprio INF per fare riferimento al driver. Il driver viene caricato in base a una corrispondenza ID compatibile simile ad altri driver di classe di dispositivo USB inclusi in Windows.

USB\Class_02

USB\Class_02&SubClass_02

  • Se si vuole caricare automaticamenteUsbser.sys , impostare il codice della classe su 02 e codice sottoclasse su 02 nel descrittore del 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 dispositivi di comunicazione 1.2.

  • Se il dispositivo specifica il codice di classe 02 ma un valore di codice della sottoclasse diverso da 02, Usbser.sys non viene caricato automaticamente. Il responsabile Plug and Play tenta di trovare un driver. Se non viene trovato un driver appropriato, il dispositivo potrebbe non avere un driver caricato. Potrebbe essere necessario caricare il driver o scrivere un inF che fa riferimento a un altro driver in box.

  • Se il dispositivo specifica i codici di classe e sottoclasse a 02 e si vuole caricare un altro driver anziché Usbser.sys, è necessario scrivere un INF che specifica l'ID hardware del dispositivo e il driver da installare. Ad esempio, esaminare i file INF inclusi con i driver di esempio e trovare dispositivi simili al dispositivo. Per informazioni sulle sezioni INF, vedere Panoramica dei file INF.

Configurare la sospensione selettiva per Usbser.sys

A partire da Windows 10,Usbser.sys supporta la sospensione selettiva USB. Consente al dispositivo USB a seriale collegato di immettere uno stato di alimentazione insufficiente quando non in uso, mentre il sistema rimane nello stato S0. Quando la comunicazione con il dispositivo riprende, il dispositivo può lasciare lo stato di sospensione e riprendere lo stato di lavoro. La funzionalità è disabilitata per impostazione predefinita e 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, è possibile impostare IdleUsbSelectiveSuspendPolicy su:

  • "0x00000001": entra in sospensione selettiva quando si esegue l'inattività, ovvero quando non sono presenti trasferimenti di dati attivi verso o dal dispositivo.

  • "0x00000000": entra in sospensione selettiva solo quando non sono presenti handle aperti per il dispositivo.

Questa voce può essere aggiunta in uno dei due modi seguenti:

  • Scrivere un inF che fa riferimento all'installazione inF e aggiungere la voce del Registro di sistema nel modulo HW. Sezione AddReg .

  • Descrivere la voce del Registro di sistema in un descrittore della funzionalità del sistema operativo delle proprietà estese. Aggiungere una sezione di proprietà personalizzata che imposta il campo bPropertyName su una stringa Unicode, "IdleUsbSelectiveSuspendPolicy" e wPropertyNameLength su 62 byte. Impostare il campo bPropertyData su "0x00000001" o "0x00000000". I valori delle proprietà vengono archiviati come interi a 32 bit di little-endian.

    Per altre informazioni, vedere Descrittori del sistema operativo Microsoft.

Sviluppare applicazioni Windows per un dispositivo USB CDC

A partire da Windows 10, un'app Di Windows può inviare richieste a Usbser.sys usando lo spazio dei nomi Windows.Devices.SerialCommunication. Definisce Windows Runtime classi che possono usare per comunicare con un dispositivo USB CDC tramite una porta seriale o un'astrazione di una porta seriale. Le classi forniscono funzionalità per individuare tali dispositivi seriali, leggere e scrivere dati e controllare proprietà specifiche della serie per il controllo del flusso, ad esempio l'impostazione della frequenza di baud, gli stati di segnale.