Condividi tramite


ID connessione per dispositivi periferici connessi serialmente

SerCx2 gestisce le porte seriali a cui i dispositivi periferici sono connessi definitivamente. Poiché queste connessioni fisiche sono fisse, possono essere descritte nel firmware ACPI per la piattaforma hardware. Se si scrive un driver per un dispositivo periferico connesso a una porta seriale gestita da SerCx2, l'elenco delle risorse hardware ricevute dal driver include un ID connessione che incapsula le informazioni di connessione del dispositivo dal firmware della piattaforma.

All'avvio del sistema, il gestore Plug and Play (PnP) enumera sia i dispositivi PnP che i dispositivi non PnP. Per un dispositivo periferico non PnP con una connessione fissa a una porta seriale, la gestione PnP esegue una query sul firmware ACPI della piattaforma hardware per ottenere un set di parametri di connessione che descrivono come accedere al dispositivo. Questi parametri di connessione identificano il controller seriale per la porta a cui è connesso il dispositivo e includono altre informazioni, ad esempio le impostazioni di velocità e controllo del flusso, che il controller seriale richiede di comunicare con il dispositivo.

La gestione PnP assegna un ID di connessione per rappresentare i parametri di connessione per questo dispositivo periferico. La gestione PnP archivia questo ID e i parametri di connessione insieme in un archivio dati di sistema denominato hub risorse. L'hub risorse è un archivio dati interno in cui la gestione PnP archivia le informazioni di configurazione su un dispositivo periferico connesso serialmente. L'ID di connessione incapsula questi parametri in modo che il driver periferico possa considerarli come opachi.

Il driver periferico riceve l'ID connessione per il dispositivo periferico connesso serialmente come parte delle risorse hardware assegnate dal driver. Quando il driver di periferica chiama una funzione di sistema per aprire una connessione al dispositivo periferico, il driver fornisce l'ID connessione, che la funzione di sistema usa per recuperare i parametri di connessione del dispositivo dall'hub di risorse.

Per esempi di codice di driver UMDF e KMDF che usano ID connessione per aprire connessioni logiche ai dispositivi periferici connessi serialmente, vedere gli argomenti seguenti:

Connessione di un driver periferica UMDF a una porta seriale

Connessione di un driver di periferica kmDF a una porta seriale

Un client che apre una connessione a un dispositivo periferico in una porta seriale ha accesso esclusivo alla porta fino alla chiusura della connessione. Un tentativo da parte di un altro client di aprire una seconda connessione alla stessa porta ha esito negativo.

Immediatamente dopo l'apertura di una porta seriale, un client deve presupporre che la porta si trova in uno stato sconosciuto o non definito. Il client è responsabile della configurazione della porta in modo che sia pronta per l'uso.

Per configurare una porta seriale per l'operazione, il client invia richieste di controllo I/O (IOCTL) al controller seriale. In genere, il client invia una richiesta di IOCTL_SERIAL_APPLY_DEFAULT_CONFIGURATION al controller per impostare la porta sulla configurazione predefinita. Se necessario, il client può inviare altri IOCTLs seriali per eseguire l'override di una o più impostazioni di configurazione predefinite. Ad esempio, Windows definisce IOCTLs seriali per modificare la frequenza di baud, i parametri di controllo del flusso, le impostazioni del controllo linea e i valori di timeout per le richieste di lettura e scrittura. Per un elenco di IOCTL seriali supportati da SerCx2, vedere Interfaccia richiesta di I/O seriale.