次の方法で共有


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

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

[in] DeviceInstanceId

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

[in, optional] hwndParent

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

[in] OpenFlags

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

DIOD_CANCEL_REMOVE

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

DIOD_INHERIT_CLASSDRVS

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

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

[out, optional] DeviceInfoData

deviceInstanceIdで指定されたデバイス インスタンスのデバイス情報要素に関する情報を受け取る、呼び出し元が指定した SP_DEVINFO_DATA 構造体 ポインター。 呼び出し元は、cbSize sizeof(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 で使用できます。
ターゲット プラットフォーム の デスクトップ
ヘッダー setupapi.h (Setupapi.h を含む)
ライブラリ Setupapi.lib

関連項目

SP_DEVINFO_DATA

SetupDiCreateDeviceInfo の

SetupDiDeleteDeviceInfo の

SetupDiEnumDeviceInfo の