Condividi tramite


Funzionalità dei driver del controller seriale SerCx2-Based

SerCx2 è un'estensione per Kernel-Mode Driver Framework (KMDF) con funzionalità speciali per supportare i driver del controller seriale. Per altre informazioni su KMDF, vedere Uso di WDF per sviluppare un driver seriale serCx2 basato su Driver è un driver kmDF che usa i metodi e i callback in KMDF per eseguire operazioni di driver generiche e che comunica con SerCx2 per eseguire operazioni specifiche dei driver seriali.

In genere, i controller seriali sono compatibili a livello di hardware con dispositivi UART (Universal Asincron Receiver/Trasmettitore) 16550. Le UART sono state usate fin dai primi giorni del personal computing per controllare le porte seriali che si trovano nei casi dei PC desktop. Più di recente, i controller seriali sono contenuti in Circuiti integrati Chip (SoC) per fornire comunicazioni con conteggio a basso pin con altri circuiti integrati. In una piattaforma hardware basata su SoC, la "porta seriale" a cui un client invia richieste di I/O è semplicemente un set di pin dell'interfaccia seriale sul chip SoC. Per altre informazioni, vedere Panoramica dei driver del controller seriale.

Microsoft potrebbe fornire il driver del controller seriale per una famiglia di controller seriali con funzionalità hardware simili. In alternativa, il fornitore hardware per un controller seriale con funzionalità speciali potrebbe fornire un driver del controller seriale personalizzato per supportare queste funzionalità.

Un driver del controller seriale comunica con SerCx2 tramite un'interfaccia del driver di dispositivo (DDI). SerCx2 DDI ha due parti:

  • Set di metodi di supporto driver implementati da SerCx2 e chiamati dal driver del controller seriale.
  • Set di funzioni di callback degli eventi implementate dal driver del controller seriale e chiamate da SerCx2.

Per descrizioni dettagliate dei metodi e dei callback negli argomenti dell'intestazione SerCx2 DDI, vedere Informazioni di riferimento sull'estensione del framework seriale (SerCx2) nelle intestazioni sercx.h .

Anche se un fornitore di hardware ha la possibilità di scrivere un driver del controller seriale autonomo, è necessario un notevole sforzo per farlo. Per confronto, lo sviluppo di un driver del controller seriale che usa SerCx2 è più semplice e in genere genera un driver molto più piccolo e più affidabile.

SerCx2 gestisce le attività seguenti per conto del driver del controller:

  • Operazioni di lettura e scrittura
  • Rilevamento timeout di I/O seriale
  • Eventi hardware
  • Trasferimenti DMA di sistema (se sono supportate le transazioni DMA del sistema)
  • Transizioni verso e da stati del dispositivo a bassa potenza
  • Annullamenti delle richieste di I/O (tranne durante le transazioni di I/O personalizzate)

Per gestire le operazioni di lettura e scrittura, SerCx2 trasforma IRP_MJ_READ e IRP_MJ_WRITE richieste dai client in transazioni di I/O relativamente semplici per l'elaborazione del driver del controller seriale. Per altre informazioni, vedere Transazioni di I/O SerCx2.

SerCx2 è incluso in Windows come componente denominato Sercx2.sys. Il driver del controller seriale collega staticamente la libreria SerCx2, Sercxstubs.lib (versione 2.0) e, in fase di esecuzione, comunica con Sercx2.sys. SerCx2 DDI viene definito nel file di intestazione 2.0\Sercx.h. Sercxstubs.lib e Sercx.h sono disponibili in Windows Driver Kit per Windows 8.1.