スマート カード ドライバー環境
次の図は、スマート カード リーダー ドライバーの標準環境を示しています。
この図には他にも、スマート カード環境の次のコンポーネントが示されています。
アプリケーションは、スマート カード リソース マネージャーを使用してスマート カード リーダー ドライバーと通信します。 リーダー ドライバーはカーネル空間に存在し、スマート カード リソース マネージャーはユーザー空間に存在します。
リソース マネージャーは、DeviceIoControl システム呼び出しを使用してディスパッチされる I/O コントロールを使用してリーダー ドライバーと通信します。 DeviceIoControl システム呼び出しの使用方法については、Microsoft Windows SDK の DeviceIoControl トピックを参照してください。
同様に、スマート カード対応アプリケーションは、DeviceIoControl を使用してスマート カード リーダー ドライバーに命令を送信でき、オペレーティング システムは指定された IOCTL をリーダー ドライバーに転送します。 リーダー ドライバーが WDM ドライバーの場合、オペレーティング システムは I/O 要求パケット (IRP) を使用して要求を転送します。
Microsoft は、1 つのリーダー ドライバー サンプル、すなわち、PCMCIA スマート カード リーダーのドライバーである pscr.sys を提供しています。 このドライバーのソース コードは、WDK サンプルのコレクションで入手できます。 詳細については、PCMCIA スマート カード ドライバーを参照してください。 スマート カード リーダー デバイスのベンダーは、システム提供のリソース マネージャーとスマート カード ドライバー ライブラリで動作するように設計されたドライバーを提供する必要があります。
「スマート カード ドライバー ライブラリ」のセクションで説明されているように、ネイティブのリーダー ドライバーとベンダー提供のリーダー ドライバーのどちらも、スマート カード ドライバー ライブラリを使用して、その主要な操作の多くを実行する必要があります。