変更する必要のない WIA プロパティのマッピング - 特殊なケース
互換性レイヤーが失敗する可能性があるのは、次のようなケースです。
Windows Vista で必須のプロパティに関連する Windows XP プロパティが見つからないか破損していると、互換性レイヤーが使用できなくなる可能性があります。 このような場合、現在のセッションは失敗します。Windows XP と Windows Vista のドライバーとアプリケーション間におけるアイテム構造とプロパティの相違により、続行するオプションは利用できません (このような状況では、アプリケーションの COM プロキシが機能しません)。 WIA_DPS_DOCUMENT_HANDLING_SELECT プロパティと WIA_DPS_DOCUMENT_HANDLING_CAPABILITIES Spark アプリケーションプロパティは特殊なケースです。Windows XP ドライバーがこれらをサポートしていない場合、Windows Vista アプリケーションに対して変換されるのは FLATBED アイテムだけになります。
特定のコンテキスト (FLATBED、FEEDER、またはプロパティ コンテキスト) に依存する Windows XP のルート プロパティの中には、そのコンテキストが設定されていない限り利用できないものがあります。また、これらのプロパティは、コンテキストごとに有効な値や現在の値が異なっている場合もあります。 WIA_DPS_DOCUMENT_HANDLING_SELECT は、適切な FEEDER/FLATBED コンテキストを設定するために使用されます。これは Windows XP ドライバーのルート アイテムにおいて、必要に応じて FEEDER (および DUPLEX) または FLATBED に設定されます。 それ以外の場合は、適切なプロパティを使用してコンテキストを設定する必要があります。 Windows XP のデバイスが FEEDER と FLATBED の両方に対応しており、すべてのルート プロパティを Windows Vista の FLATBED アイテムと FEEDER アイテムの双方に変換できる場合も、これと同様です。
Windows Vista の重複プロパティが Windows XP の一意なプロパティとの間で変換される際、同一プロパティに対して異なる Windows Vista アイテムから別々の値が設定されているケースを WIA サービスがどう処理するかを決定する必要があります。 この問題を解決するには、コンテキストが変更されるたびに、Windows XP の A-AIT アイテムのプロパティをすべて再初期化します。 この方法により、Windows XP アプリケーションから、Windows Vista ドライバーの FEEDER アイテムと FLATBED アイテムに対して個別のプロパティ セットをネゴシエートできるようになります。
Windows Vista ドライバーで FEEDER や FLATBED のアイテムが実装されていない場合 (たとえば、ドライバーがフィルム/TPA (透過アダプター) やストレージのアイテムだけを実装しているケース)、互換性レイヤーは使用できなくなります。 Windows Vista のフィルム/TPA やストレージ アイテムに対して、常に汎用的な Windows XP の子アイテムを作成できると想定するのは安全ではありません。 さらに、Windows Vista ドライバーがフィルム/TPA とストレージ アイテムの両方を実装している場合、状況はさらに複雑になる可能性があります。 つまり、Windows Vista ドライバーが最低限 FLATBED アイテムか FEEDER アイテムのどちらかを実装していない場合、互換性レイヤーは動作しません。
Windows XP ドライバーが適切な Windows XP のアイテム構造 (ルートと子のスキャン アイテム) を実装していない場合、たとえば、ドライバーが新しい Windows Vista のアイテム構造のサポートを部分的に実装しているものの、Windows Vista のイメージ転送を完全にサポートしていない場合、プロパティ/アイテムの互換性レイヤーは無効化され、現在のセッションは失敗します。