SetupDiCreateDeviceInterfaceW 関数 (setupapi.h)
SetupDiCreateDeviceInterface 関数は、ローカル システムまたはリモート システムにデバイス インターフェイスを登録します。
構文
WINSETUPAPI BOOL SetupDiCreateDeviceInterfaceW(
[in] HDEVINFO DeviceInfoSet,
[in] PSP_DEVINFO_DATA DeviceInfoData,
[in] const GUID *InterfaceClassGuid,
[in, optional] PCWSTR ReferenceString,
[in] DWORD CreationFlags,
[out, optional] PSP_DEVICE_INTERFACE_DATA DeviceInterfaceData
);
パラメーター
[in] DeviceInfoSet
デバイス情報セットへのハンドル。 このセットには、インターフェイスを登録するデバイスを表すデバイス情報要素が含まれています。 このハンドルは通常、 SetupDiGetClassDevs によって返されます。
[in] DeviceInfoData
DeviceInfoSet のデバイス情報要素を指定するSP_DEVINFO_DATA構造体へのポインター。
[in] InterfaceClassGuid
新しいインターフェイスのインターフェイス クラスを指定するクラス GUID へのポインター。
[in, optional] ReferenceString
参照文字列を提供する NULL で終わる文字列へのポインター。 このポインターは省略可能であり、 NULL にすることができます。 参照文字列は、必要に応じて作成されたソフトウェア デバイスのプレースホルダーとしてデバイス インターフェイスを使用するいくつかのバス ドライバーによってのみ使用されます。
[in] CreationFlags
予約済み。 ゼロを指定してください。
[out, optional] DeviceInterfaceData
新しいデバイス インターフェイスに関する情報を受け取る呼び出し元初期化 SP_DEVICE_INTERFACE_DATA 構造体へのポインター。 このポインターは省略可能であり、 NULL にすることができます。 構造体が指定されている場合、呼び出し元は、この関数を呼び出す前に、この構造体の cbSize メンバーを sizeof(SP_DEVICE_INTERFACE_DATA) に設定する必要があります。 詳細については、次の 「解説 」セクションを参照してください。
戻り値
関数がエラーなしで完了した場合、SetupDiCreateDeviceInterface は TRUE を返します。 関数がエラーで完了した場合は FALSE が 返され、 GetLastError を呼び出すことでエラーのエラー コードを取得できます。
注釈
この関数の呼び出し元は、Administrators グループのメンバーである必要があります。
SetupDiCreateDeviceInterface は、デバイスのインターフェイスを登録します。 デバイスに複数のインターフェイスがある場合は、登録されているインターフェイスごとにこの関数を 1 回呼び出します。
この関数は、指定されたデバイス情報要素に対応するデバイスのインターフェイスを正常に登録した場合、指定されたデバイス情報セット内のデバイス情報要素に関連付けられているインターフェイス リストにもインターフェイスを追加します。
登録されたインターフェイスをアプリケーションやその他のシステム コンポーネントで使用するには、デバイスのドライバーでインターフェイスを有効にする必要があります。
この関数は、新しいデバイス インターフェイスのレジストリ キーを作成します。 この関数の呼び出し元は、 SetupDiOpenDeviceInterfaceRegKey を使用して、このキーの下の不揮発性ストレージにアクセスできます。
SetupDiCreateDeviceInterface が新しいデバイス インターフェイスを正常に作成したが、DeviceInterfaceData パラメーターの呼び出し元が指定したバッファーが無効な場合、この関数は FALSE を返し、その後の GetLastError の呼び出しはERROR_INVALID_USER_BUFFERを返します。 ただし、 関数は新しいデバイス インターフェイスを作成して登録します。
注意
setupapi.h ヘッダーは、Unicode プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択するエイリアスとして SetupDiCreateDeviceInterface を定義します。 エンコードに依存しないエイリアスをエンコードニュートラルでないコードと組み合わせて使用すると、コンパイルまたはランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「 関数プロトタイプの規則」を参照してください。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Microsoft Windows 2000 以降のバージョンの Windows で使用できます。 |
対象プラットフォーム | デスクトップ |
Header | setupapi.h (Setupapi.h を含む) |
Library | Setupapi.lib |