次の方法で共有


SetupDiCreateDevRegKeyA 関数 (setupapi.h)

SetupDiCreateDevRegKey 関数は、デバイス固有の構成情報のレジストリ キーを作成し、キーへのハンドルを返します。

構文

WINSETUPAPI HKEY SetupDiCreateDevRegKeyA(
  [in]           HDEVINFO         DeviceInfoSet,
  [in]           PSP_DEVINFO_DATA DeviceInfoData,
  [in]           DWORD            Scope,
  [in]           DWORD            HwProfile,
  [in]           DWORD            KeyType,
  [in, optional] HINF             InfHandle,
  [in, optional] PCSTR            InfSectionName
);

パラメーター

[in] DeviceInfoSet

レジストリ キーを作成するデバイスを表すデバイス情報要素を含む デバイス情報セットへのハンドル。

[in] DeviceInfoData

DeviceInfoSet内のデバイス情報要素を指定する SP_DEVINFO_DATA 構造体 ポインター。

[in] Scope

作成するレジストリ キーのスコープ。 スコープによって、情報の格納場所が決まります。 作成されるキーは、グローバルプロファイルまたはハードウェアプロファイルに固有です。 次のいずれかの値を指定できます。

DICS_FLAG_GLOBAL

グローバル構成情報を格納するキーを作成します。 この情報は、特定のハードウェア プロファイルに固有ではありません。 NT ベースのオペレーティング システムでは、HKEY_LOCAL_MACHINEに根ざしたキーが作成されます。 開く正確なキーは、KeyType パラメーターの値によって異なります。

DICS_FLAG_CONFIGSPECIFIC

ハードウェア プロファイル固有の構成情報を格納するキーを作成します。 このキーは、HKEY_LOCAL_MACHINEではなく、ハードウェア プロファイル固有のブランチのいずれかに根ざしています。

[in] HwProfile

HwProfileFlags が SPDICS_FLAG_CONFIGSPECIFIC に設定されている場合にキー 作成するハードウェア プロファイル。 HwProfile が 0 の場合は、現在のハードウェア プロファイルのキーが作成されます。 HwProfileFlags がSPDICS_FLAG_GLOBALされている場合、HwProfile は無視されます。

[in] KeyType

作成するレジストリ ストレージ キーの種類。 次のいずれかの値を指定できます。

DIREG_DEV

デバイスの ハードウェア キー を作成します。

DIREG_DRV

デバイスの ソフトウェア キー を作成します。

[in, optional] InfHandle

INF DDInstall セクションを含む開いている INF ファイルへのハンドル、新しく作成されたキーに対して実行されます。 このパラメーターは省略可能であり、NULLできます。 このパラメーターを指定する場合は、InfSectionName も指定する必要があります。

[in, optional] InfSectionName

InfHandleで指定された INF ファイル内の INF DDInstall セクション 名前。 このセクションは、新しく作成されたキーに対して実行されます。 このパラメーターは省略可能であり、NULLできます。 このパラメーターを指定する場合は、InfHandle も指定する必要があります。

戻り値

SetupDiCreateDevRegKey 成功した場合、この関数は、デバイス固有の構成データを格納および取得できる指定されたレジストリ キーへのハンドルを返します。 SetupDiCreateDevRegKey 失敗した場合、関数はINVALID_HANDLE_VALUEを返します。 GetLastError 呼び出して、拡張エラー情報を取得します。

備考

SetupDiCreateDevRegKey の呼び出し元は、Administrators グループのメンバーである必要があります。

RegCloseKeyを呼び出して、SetupDiCreateDevRegKey から返されたハンドルを閉じます。

指定したキーが既に存在する場合は、SetupDiCreateDevRegKey はそのキーへのハンドルを返します。 それ以外の場合は、SetupDiCreateDevRegKey 指定したキーを作成し、新しいキーへのハンドルを返します。 Windows Server 2003 以降のバージョンの Windows の場合、キー ハンドルにはKEY_READとKEY_WRITEアクセス権しかありません。 以前のバージョンの Windows では、このハンドルにはKEY_ALL_ACCESSアクセス権があります。

SetupDiCreateDevRegKey を呼び出 前に、指定したデバイス インスタンスを登録する必要があります。 ただし、オペレーティング システムによって PnP デバイス インスタンスが自動的に登録されることに注意してください。 PnP 以外のデバイス インスタンスを登録する方法については、「SetupDiRegisterDeviceInfoを参照してください。

レイアウト ファイル (INF バージョン セクションLayoutFile エントリで指定) を使用するインストールの場合、SetupDiCreateDevRegKey を呼び出す 前に、(Microsoft Windows SDK ドキュメントで説明されている) SetupOpenAppendInfFile を呼び出してレイアウト ファイルを開く必要があります。

指定されたデバイス情報セットにリモート システムのデバイス情報要素が含まれており、InfHandle と InfSectionName も指定されている場合、作成要求は失敗し、GetLastError の後続の呼び出しはERROR_REMOTE_REQUEST_UNSUPPORTEDを返します。

手記

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

必要条件

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

関連項目

SetupDiCreateDeviceInfo の

SetupDiGetHwProfileList の

SetupDiOpenDevRegKey の

SetupDiRegisterDeviceInfo の