SetupDiOpenDeviceInfoW 関数 (setupapi.h)

SetupDiOpenDeviceInfo 関数は、デバイス情報セットにデバイス情報セットがまだ存在しない場合に、デバイス インスタンスのデバイス情報要素をデバイス情報セットに追加し、デバイス情報セット内のデバイス インスタンスのデバイス情報要素を識別する情報を取得します。

構文

WINSETUPAPI BOOL SetupDiOpenDeviceInfoW(
  [in]            HDEVINFO         DeviceInfoSet,
  [in]            PCWSTR           DeviceInstanceId,
  [in, optional]  HWND             hwndParent,
  [in]            DWORD            OpenFlags,
  [out, optional] PSP_DEVINFO_DATA DeviceInfoData
);

パラメーター

[in] DeviceInfoSet

DeviceInstanceId で指定されたデバイス インスタンスに対して、SetupDiOpenDeviceInfo がデバイス情報要素を追加するデバイス情報セットのハンドル (まだ存在しない場合)。

[in] DeviceInstanceId

デバイスのデバイス インスタンス識別子 ("Root*PNP0500\0000" など) を提供する NULL で終わる文字列へのポインター。 DeviceInstanceIdNULL の場合、または長さ 0 の文字列を参照している場合、SetupDiOpenDeviceInfo は、デバイス ツリー内のルート デバイスに対して、指定されたデバイス情報セットにデバイス情報要素を追加します (まだ存在しない場合)。

[in, optional] hwndParent

デバイスのインストールに関連するすべてのユーザー インターフェイスに使用する最上位ウィンドウへのハンドル。

[in] OpenFlags

デバイス情報要素を開く方法を制御する DWORD 型の変数。 このパラメーターの値には、次の 1 つ以上を指定できます。

DIOD_CANCEL_REMOVE

このフラグを指定し、デバイスが保留中の削除のマークが付けられている場合、オペレーティング システムは保留中の削除を取り消します。

DIOD_INHERIT_CLASSDRVS

このフラグを指定すると、結果のデバイス情報要素は、デバイス情報セットに関連付けられているクラス ドライバー リスト (存在する場合) を継承します。 さらに、デバイス情報セットに対して選択されたドライバーがある場合は、新しいデバイス情報要素に対して同じドライバーが選択されます。

デバイス情報要素が既に存在していた場合は、そのクラス ドライバー リスト (存在する場合) が継承されたリストに置き換えられます。

[out, optional] DeviceInfoData

DeviceInstanceId で指定されたデバイス インスタンスのデバイス情報要素に関する情報を受け取る、呼び出し元から提供されたSP_DEVINFO_DATA構造体へのポインター。 呼び出し元は cbSizesizeof(SP_DEVINFO_DATA) に設定する必要があります。 このパラメーターは省略可能であり、 NULL にすることができます

戻り値

SetupDiOpenDeviceInfo は、成功した場合に TRUE を 返します。 それ以外の場合、関数は FALSE を 返し、ログに記録されたエラーを GetLastError の呼び出しで取得できます。

注釈

このデバイス インスタンスが、関連付けられたクラスを持つセットに追加されている場合、デバイス クラスは同じである必要があります。または、呼び出しが失敗します。 この場合、 GetLastError を呼び出すとERROR_CLASS_MISMATCHが返されます。

新しいデバイス情報要素が正常に開かれたが、呼び出し元から指定された DeviceInfoData バッファーが無効な場合、この関数は FALSE を返します。 この場合、 GetLastError を呼び出すとERROR_INVALID_USER_BUFFERが返されます。 ただし、デバイス情報要素は、セットの新しいメンバーとして追加されます。

注意

setupapi.h ヘッダーは、Unicode プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択するエイリアスとして SetupDiOpenDeviceInfo を定義します。 エンコードに依存しないエイリアスをエンコードニュートラルでないコードと組み合わせて使用すると、コンパイルまたはランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「 関数プロトタイプの規則」を参照してください。

要件

要件
サポートされている最小のクライアント Microsoft Windows 2000 以降のバージョンの Windows で使用できます。
対象プラットフォーム デスクトップ
Header setupapi.h (Setupapi.h を含む)
Library Setupapi.lib
API セット ext-ms-win-setupapi-classinstallers-l1-1-1 (Windows 8.1 で導入)

こちらもご覧ください

SP_DEVINFO_DATA

SetupDiCreateDeviceInfo

SetupDiDeleteDeviceInfo

SetupDiEnumDeviceInfo