WIA-TWAIN リスク
WIA ドライバーの STI 部分を使用する TWAIN ドライバーがある場合は、次の点に注意する必要があります。
TWAIN データ ソースは、ドライバーにアクセスする前に IStiUSD::LockDeviceを呼び出します。 これにより、IStiUSD::UnLockDeviceが呼び出されるまで、WIA アプリケーションが WIA ドライバーに接続できなくなります。 この問題を最小限に抑えるには、WIA クライアントが接続して操作を実行できるように、デバイスへのアクセスを制限します。 TWAIN メインアプリケーションとドライバーの間に 1 対 1 の関係があるため、これは重要です。 WIA では、複数のアプリケーションを 1 つの WIA ドライバーに接続できます。 このため、TWAIN ドライバーにアクセスする TWAIN アプリケーションは、WIA アプリケーションをロックアウトする可能性があります。 これを防ぐには、適切なロック手法を使用します。
STI インターフェイス メソッドを使用するアプリケーションまたはユーティリティは、WIA ドライバーへのアクセスを妨げる可能性があります。 たとえば、ボタンまたはデバイスの状態を監視するユーティリティや、システム トレイを監視するアプリケーションがあります。
WIA ドライバーでは、IStiUSD::RawReadData、IStiUSD::RawWriteData、IStiUSD::RawReadCommand、IStiUSD::RawWriteCommand、IStiUSD::Escape の呼び出しが、適切なロックを使用して正しく検証され、分離されていることを確認する必要があります。
ドライバーを作成するときは、有効なデータのみがデバイスに送信されるように、受信値を確認します。
IStiUSD::Escapeを使用する場合の適切な検証シーケンスについては、「IStiUSD エスケープ メソッドの使用」を参照してください。 適切なロックの詳細については、「ベスト プラクティスのロックとロック解除」を参照してください。