I minidriver astraggono le smart card in modo che le applicazioni possano parlare con loro utilizzando un'interfaccia comune. La tua app non ha nemmeno bisogno di sapere né preoccuparsi di quale smartcard stia parlando, o se sia davvero una smartcard o un grande HSM in rete, supponendo che acceda alla scheda attraverso l'interfaccia standard e non parli direttamente alla scheda. Ecco un buon esempio della Microsoft stessa , come puoi vedere RsaCryptoServiceProvider può essere utilizzato allo stesso modo indipendentemente dalla scheda, poiché il minidriver fornisce un provider di servizi di crittografia che astrae la scheda.
Il minidriver giusto dovrebbe essere installato automaticamente tramite Windows Update, supponendo che il produttore abbia presentato il proprio minidriver. Non sono sicuro che i produttori si siano presi la briga di farlo in pratica. Ma sì, in teoria nulla ti impedisce di raggruppare un sacco di minidriver con la tua app e di installarli in anticipo.
CCID è uno standard per comunicare con i lettori di smart card USB, il suo unico compito è quello di trasmettere APDU (comandi) tra il computer e il lettore di smart card. Fondamentalmente il minidriver si traduce da funzioni di crittografia di alto livello in APDU di basso livello (che sono specifiche della scheda) e quindi le passa al lettore tramite CCID.