SetupDiOpenDeviceInfoA 関数 (setupapi.h)

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

構文

WINSETUPAPI BOOL SetupDiOpenDeviceInfoA(
  [in]            HDEVINFO         DeviceInfoSet,
  [in]            PCSTR            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 を定義します。 encoding-neutral エイリアスの使用を encoding-neutral ではないコードと混在すると、コンパイル エラーまたはランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「 関数プロトタイプの規則」を参照してください。

要件

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

こちらもご覧ください

SP_DEVINFO_DATA

SetupDiCreateDeviceInfo

SetupDiDeleteDeviceInfo

SetupDiEnumDeviceInfo