Windows 8 において WIA のデバイス列挙で取り外したデバイスが列挙される

現象
Windows 8 の環境において、Windows Imaging Acquisition (WIA) API の IWiaDevMgr::EnumDeviceInfo または IWiaDevMgr2::EnumDeviceInfo を使用してデバイスの列挙を行うアプリケーションで、現在接続されていないデバイスが検出されることがあります。

本現象は、列挙するデバイスとして WIA_DEVINFO_ENUM_LOCAL を指定した場合にも発生します。このような状況で IWiaDevMgr::CreateDevice または IWiaDevMgr2::CreateDevice メソッドを呼び出すとエラーが発生します。
原因
この問題は、Windows 8 の不具合が原因で発生します。
解決方法
この問題を回避するには、Windows 8.1  にアップグレードする必要があります。
詳細
再現手順
  1. Windows 8 の環境に WIA 対応デバイスを接続します。
  2. WIA 対応デバイスを Windows 8 環境から取り外します。
  3. IWiaDevMgr::EnumDeviceInfo または IWiaDevMgr2::EnumDeviceInfo を使用して次のコードのようにデバイスを列挙します。
HRESULT hr;CComPtr<IWiaDevMgr> pWiaDevMgr;CComPtr<IEnumWIA_DEV_INFO> pIEnumWIA_DEV_INFO;hr = pWiaDevMgr.CoCreateInstance(CLSID_WiaDevMgr);// Type your error check code here.hr = pWiaDevMgr->EnumDeviceInfo( WIA_DEVINFO_ENUM_LOCAL, &pIEnumWIA_DEV_INFO);// Type your error check code here.

結果:Windows 8 では、取り外されたデバイスが列挙されます。
注意 : これは、マイクロソフトのサポート組織内で直接作成された "緊急公開" の資料です。 この資料には、確認中の問題に関する現状ベースの情報が記載されています。 情報提供のスピードを優先するため、資料には誤植が含まれる可能性があり、予告なしに随時改定される場合があります。 その他の考慮事項については、使用条件を参照してください。
プロパティ

文書番号:3002081 - 最終更新日: 09/29/2016 15:50:00 - リビジョン: 3.0

  • KB3002081
フィードバック