次の方法で共有


SetupDiOpenDeviceInterfaceA 関数 (setupapi.h)

SetupDiOpenDeviceInterface 関数は、デバイス インターフェイスに関する情報を取得し、ローカル システムまたはリモート システムの指定されたデバイス情報セットにインターフェイスを追加します。

構文

WINSETUPAPI BOOL SetupDiOpenDeviceInterfaceA(
  [in]            HDEVINFO                  DeviceInfoSet,
  [in]            PCSTR                     DevicePath,
  [in]            DWORD                     OpenFlags,
  [out, optional] PSP_DEVICE_INTERFACE_DATA DeviceInterfaceData
);

パラメーター

[in] DeviceInfoSet

開くインターフェイスをサポートするデバイスを表すデバイス情報要素を含む(または含む) デバイス情報セットへのポインター。

[in] DevicePath

開くデバイス インターフェイスの名前を提供する NULL で終わる文字列へのポインター。 この名前は Win32 デバイス パスであり、通常は PnP 通知構造で受信されるか、SetupDiEnumDeviceInterfaces とその関連する関数への以前の呼び出しによって取得されます。

[in] OpenFlags

デバイス インターフェイス要素を開く方法を決定するフラグ。 有効なフラグは次のとおりです。

DIODI_NO_ADD

指定した デバイス情報セットに要素がまだ存在しない場合、基になるデバイスのデバイス情報要素作成されないことを指定します。 詳細については、次の 解説 セクションを参照してください。

[out, optional] DeviceInterfaceData

要求されたインターフェイス データを受信する呼び出し元初期化 SP_DEVICE_INTERFACE_DATA 構造体へのポインター。 このポインターは省略可能であり、NULLできます。 バッファーが指定されている場合、呼び出し元は、setupDiOpenDeviceInterfaceを呼び出す前に、構造体の cbSize メンバーを sizeof(SP_DEVICE_INTERFACE_DATA) に設定 必要があります。 詳細については、次の 解説 セクションを参照してください。

戻り値

SetupDiOpenDeviceInterface は、関数がエラーなしで完了した場合 TRUE を返します。 関数がエラーで完了した場合は、FALSE が返され、エラーのエラー コード GetLastErrorを呼び出すことによって取得できます。

備考

DeviceInfoSetにインターフェイスのデバイス インターフェイス要素が既に存在する場合は、SetupDiOpenDeviceInterface フラグを更新します。 したがって、この関数を使用して、デバイス インターフェイスのフラグを更新できます。 たとえば、インターフェイスが最初に開かれたときに非アクティブであったが、その後アクティブになった可能性があります。 基になるデバイスのデバイス情報要素 DeviceInfoSetにまだ存在しない場合、この関数はデバイス情報要素を作成して DeviceInfoSet追加します。

関数が正常に新しいデバイス インターフェイスを開いたが、呼び出し元が DeviceInterfaceData パラメーターに有効な構造体を指定しなかった場合、関数は FALSE 返し、その後の GetLastError 呼び出しはERROR_INVALID_USER_BUFFERを返します。 ただし、この状況では、SetupDiOpenDeviceInterface は、要求されたインターフェイスをデバイス情報セットに追加します。

新しいデバイス インターフェイスが正常に開かれたが、呼び出し元から提供された DeviceInterfaceData バッファーが無効な場合、この関数は FALSE 返し、GetLastError はERROR_INVALID_USER_BUFFERを返 。 呼び出し元のバッファー エラーによって、インターフェイスが開かれるのを妨げることはありません。

DIODI_NO_ADD フラグが OpenFlags パラメーターに指定されており、基になるデバイスのデバイス情報要素が指定された デバイス情報セットにまだ存在しない場合、この関数は FALSE 返し、GetLastError がERROR_NO_SUCH_DEVICE_INTERFACEを返

アプリケーションが SetupDiOpenDeviceInterface 取得 情報の使用が完了したら、アプリケーション SetupDiDeleteDeviceInterfaceData呼び出す必要があります。

MF_DEVSOURCE_ATTRIBUTE_SOURCE_TYPE_VIDCAP_SYMBOLIC_LINK 属性は、SetupDiOpenDeviceInterface 関数の DevicePath 引数の値として渡すことができます。

手記

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

必要条件

要件 価値
サポートされる最小クライアント Microsoft Windows 2000 以降のバージョンの Windows で使用できます。
ターゲット プラットフォーム の デスクトップ
ヘッダー setupapi.h (Setupapi.h を含む)
ライブラリ Setupapi.lib

関連項目

SetupDiDeleteDeviceInterfaceData の

SetupDiEnumDeviceInterfaces の