STI コンポーネントの概要
次の図は、Microsoft STI を構成するソフトウェアコンポーネントを示しています。 図の後に、コンポーネントの一覧があります。
イメージング アプリケーション
イメージング アプリケーションは、通常、キャプチャされた静止画像を受信、表示、編集できます。 TWAIN などのイメージ取得 API を呼び出してイメージを取得します。 IStillImage COM インターフェイスを使用して、静止画像イベント モニターに自身を登録する必要があります。 詳細については、「プッシュ モデル対応アプリケーションの作成」を参照してください。
イメージ取得 API
TWAIN、ISIS、Adobe Systems の Acquire は、イメージ取得 API の例です。 図は、TWAIN を示しています。 ベンダーが提供する TWAIN データ ソースは、静止画像デバイスと通信する、デバイス固有かつオペレーティング システム固有のコンポーネントです。
Microsoft STI では、TWAIN データ ソースは IStillImage インターフェイスと IStiDevice インターフェイスが提供するメソッドを呼び出します。 詳細については、「画像取得API のデバイス固有のコンポーネントの作成」を参照してください。
スキャナーとカメラのコントロール パネル
スキャナーとカメラのコントロール パネルを使用すると、ユーザーは次の操作を実行できます。
インストールされている静止画像デバイスの一覧を表示します。
静止画像デバイスをテストします。
ベンダー指定のデバイス固有のプロパティ シート ページが提供する、静止画像デバイスの情報を表示および変更します。
特定のアプリケーションに静止画像デバイス イベントを割り当てます。
静止画像イベント モニター
静止画像イベント モニターは、静止画像サーバー プロセスに存在します。 これは、すべての静止画像デバイス (プラグ アンド プレイ互換デバイスとハードウェアの追加ウィザードを使用してインストールされたデバイスの両方) のデータベースを保持します。 また、登録済みアプリケーションと静止画像デバイス イベントのデータベースも保持します。
イベント モニターは、静止画像デバイス イベントを待機します。 (静止画像デバイス イベントを生成しない古いドライバーでサポートされているデバイスの場合、イベント モニターはポーリング スレッドを作成します)。イベントが検出されると、イベント モニターは、ユーザーが以前にイベントに割り当てたアプリケーションを起動します (スキャナーとカメラのコントロール パネルを使用)。 ユーザーがイベントを複数のアプリケーションに割り当てた場合、イベント モニターは、起動するアプリケーションをユーザーに確認します。 イベントがどのアプリケーションにも割り当てられていない場合は無視されます。
静止画像イベント モニターの詳細については、Microsoft Windows SDK ドキュメントの「静止画像」を参照してください。
静止画像 COM インターフェイス
Microsoft STI は、さまざまな Microsoft STI コンポーネント間の通信パスを提供する一連の COM インターフェイスを定義します。 次の COM インターフェイスが定義されています。
IStiDeviceControl COM インターフェイス
ユーザー モードの静止画像ミニドライバー
ユーザー モードの静止画像ミニドライバーは、適切なカーネル モード ドライバーにデバイス固有のユーザー モード インターフェイスを提供する、ベンダー側で用意されるコンポーネントです。 これらの各ユーザー モード ドライバーは、IStiUSD COM インターフェイスを実装する必要があります。 これらは、CreateFile、ReadFile、WriteFile、DeviceIoControl Win32 関数 (Microsoft Windows SDK ドキュメントに記載) を呼び出すことによって、カーネル モード ドライバーと通信します。 詳細については、「ユーザー モードの静止画像ミニドライバーの作成」を参照してください。
カーネル モードの静止画像ドライバー
カーネル モードの静止画像ドライバーは、特定のバスの種類に接続されている静止画像デバイスに配信するデータをパッケージ化します。 Microsoft は、USB と SCSI バス用の WDM ベースのカーネル モードの静止画像ドライバーを提供しています。 詳細については、「静止画像デバイスのカーネル モード ドライバーへのアクセス」を参照してください 。
他のバスに接続されている静止画像デバイスの場合、ユーザー モード ミニドライバーはカーネル モード のバス ドライバー スタックと直接通信します。
ベンダーがカーネル モードの静止画像ドライバーを提供する必要があるのは、デバイスに Microsoft が提供するドライバーとの互換性がない場合だけです。
カーネル モードのバス ドライバー スタック
Microsoft では、次のように、SCSI、USB、パラレル、IEEE 1394 互換、シリアル バスに接続された静止画像デバイスと、赤外線インターフェイスに接続されたデバイスをサポートしています。
SCSI および USB バスに接続されているデバイス
ユーザー モード ドライバーは、静止画像デバイスのバス固有のカーネル モード ドライバーを呼び出します。
パラレル ポートに接続されているデバイス
拡張機能ポート (ECP) と拡張パラレル ポート (EPP) モードがサポートされています。 ベンダーが提供するカーネル モードのフィルター ドライバーは、ユーザー モードの静止画像ドライバーとカーネル モード バス ドライバー スタックの間に追加できます。 (パラレル ポート ドライバーの詳細については、「パラレル デバイス設計ガイド」と「パラレル デバイス リファレンス」を参照してください。フィルター ドライバーの詳細については、「フィルター ドライバー」を参照してください。
IEEE 1394 バスに接続されているデバイス
SBP-2 プロトコルをサポートするデバイスの場合、ユーザー モード ドライバーは Microsoft の SBP-2 インターフェイスを呼び出すことができます。 それ以外の場合は、ベンダーが提供するフィルター ドライバーが必要です。
シリアル ポートに接続されているデバイス
標準のシリアル ポート ドライバーが使用されます。 (詳細については、「シリアル デバイスとドライバー」を参照してください)。
赤外線インターフェイスに接続されているデバイス
ドライバーは、IrSock ソフトウェア インターフェイスを呼び出すことができます (Microsoft Windows SDK のドキュメントに記載)。
ベンダーは、Microsoft ドライバーでサポートされていないバスのバス ドライバーを提供するだけで済みます。