次の方法で共有


SP_DEVINSTALL_PARAMS_A構造体 (setupapi.h)

SP_DEVINSTALL_PARAMS構造体には、特定のデバイス情報要素に関連付けられている、またはデバイス情報セットにグローバルに関連付けられているデバイス インストール パラメーターが含まれています。

構文

typedef struct _SP_DEVINSTALL_PARAMS_A {
  DWORD             cbSize;
  DWORD             Flags;
  DWORD             FlagsEx;
  HWND              hwndParent;
  PSP_FILE_CALLBACK InstallMsgHandler;
  PVOID             InstallMsgHandlerContext;
  HSPFILEQ          FileQueue;
  ULONG_PTR         ClassInstallReserved;
  DWORD             Reserved;
  CHAR              DriverPath[MAX_PATH];
} SP_DEVINSTALL_PARAMS_A, *PSP_DEVINSTALL_PARAMS_A;

メンバー

cbSize

SP_DEVINSTALL_PARAMS構造体のサイズ (バイト単位)。

Flags

インストールとユーザー インターフェイスの操作を制御するフラグ。 一部のフラグは、デバイスのインストール要求を送信する前に設定できます。一部のフラグは、一部の要求の処理中に自動的に設定されます。 フラグ には、次の値の組み合わせを指定できます。

フラグ値は、 デバイス インストール アプリケーション とインストーラーによる書き込み可能、読み取り専用 (OS によってのみ設定)、予約済み、および古いグループに一覧表示されます。 最初のグループには、書き込み可能なフラグが一覧表示されます。

DI_CLASSINSTALLPARAMS

クラス インストール パラメーターを使用するように を設定します。 SetupDiSetClassInstallParams は、呼び出し元がパラメーターを指定するときにこのフラグを設定し、呼び出し元が NULL パラメーター ポインターを指定したときにフラグをクリアします。

DI_COMPAT_FROM_CLASS

SetupDiBuildDriverInfoList を強制的に設定して、INF ファイルではなく、クラス ドライバーの一覧からデバイスの互換性のあるドライバーの一覧をビルドします。

DI_DRIVERPAGE_ADDED

システム提供のドライバーのプロパティ ページを置き換えるページがインストーラーによって提供される場合は、クラス インストーラーまたは共同インストーラーによって設定されます。 このフラグが設定されている場合、オペレーティング システムには、システム提供のドライバー ページは表示されません。

DI_DONOTCALLCONFIGMG

特定のデバイス インストール機能 ( SetupDiInstallDevice など) の実行中にデバイスを削除または再有効化するために構成マネージャーを呼び出す必要がない場合に設定します。

このフラグが設定されている場合、デバイス インストール アプリケーション、クラス インストーラー、および共同インストーラーは、次の関数を呼び出してはなりません。

CM_Reenumerate_DevNodeCM_Reenumerate_DevNode_ExCM_Query_And_Remove_SubTreeCM_Query_And_Remove_SubTree_ExCM_Setup_DevNode CM_Setup_DevNode_ExCM_Set_HW_Prof_FlagsCM_Set_HW_Prof_Flags_ExCM_Enable_DevNodeCM_Enable_DevNode_ExCM_Disable_DevNodeCM_Disable_DevNode_Ex

DI_ENUMSINGLEINF

インストーラーやその他の デバイス インストール コンポーネント が、SP_DEVINSTALL_PARAMSで指定された INF ファイルのみを検索する必要があるかどうかを設定します。DriverPath。 このフラグが設定されている場合、 DriverPath にはディレクトリのパスではなく、1 つの INF ファイルのパスが含まれます。

DI_INF_IS_SORTED

[デバイスの選択] ページに、ドライバーをアルファベット順に並べ替えるのではなく、INF ファイルに表示される順序で一覧表示するように設定します。

DI_INSTALLDISABLED

デバイスを既定で無効な状態でインストールする必要があるかどうかを設定します。 認識するには、Windows が DIF_INSTALLDEVICE 要求の既定のハンドラーを呼び出す前に、このフラグを設定する必要があります。

DI_NEEDREBOOT

NT ベースのオペレーティング システムの場合、デバイスのインストール後またはデバイスの状態の変更後にコンピューターを再起動する必要がある場合は、このフラグが設定されます。 クラス インストーラーまたは共同インストーラーは、インストーラーが再起動が必要であると判断した場合、デバイスのインストール中にいつでもこのフラグを設定できます。

DI_NEEDRESTART

DI_NEEDREBOOTと同じです。

DI_NOBROWSE

ユーザーが OEM ディスク パスを選択しているときに参照を無効にするように設定します。 デバイス インストール アプリケーションでは、このフラグを設定して、ユーザーがインストール メディアの場所からのみインストールするように制限します。

DI_NODI_DEFAULTACTION

クラス インストーラーがERR_DI_DO_DEFAULTを返すか、クラス インストーラーがない場合に 、SetupDiCallClassInstaller が既定のアクションを実行しないようにするかどうかを設定します。

DI_NOFILECOPY

SetupDiInstallDevice などのデバイス インストール アプリケーションとコンポーネントがファイルのコピーをスキップする必要があるかどうかを設定します。

DI_NOVCP

を設定すると、新しいコピー キューの作成が無効になります。 SP_DEVINSTALL_PARAMSで呼び出し元から指定されたコピー キューを使用します。FileQueue

DI_NOWRITE_IDS

SetupDiInstallDevice が INF で指定されたハードウェア ID互換性のある ID をデバイス ノード (devnode) のデバイス プロパティに書き込まないように設定します。 このフラグは、ルート列挙デバイスにのみ設定する必要があります。

このフラグは、DI_FLAGSEX_ALWAYSWRITEIDS フラグをオーバーライドします。

DI_PROPERTIES_CHANGE

デバイスのプロパティが変更された場合は、デバイス マネージャーによって設定されます。インストーラーのユーザー インターフェイスを更新する必要があります。

DI_QUIETINSTALL

デバイス インストーラー関数をサイレントにする必要があり、可能な限り既定の選択肢を使用する必要があるかどうかを設定します。 このフラグが設定されている場合、クラス インストーラーと共同インストーラーでは UI を表示できません。

DI_RESOURCEPAGE_ADDED

システム提供のリソース プロパティ ページを置き換えるページがインストーラーによって提供される場合は、クラス インストーラーまたは共同インストーラーによって設定されます。 このフラグが設定されている場合、オペレーティング システムには、システム提供のリソース ページは表示されません。

DI_SHOWOEM

OEM ディスクのサポートを許可するように を設定します。 このフラグが設定されている場合、オペレーティング システムは [デバイスの選択] ページに [ディスクがある] ボタンを表示します。 このフラグは、既定では、システム指定のウィザードで設定されます。

DI_USECI_SELECTSTRINGS

SetupDiSelectDevice の間に使用する必要がある文字列がクラス インストーラーまたは共同インストーラーによって指定された場合に設定します。

次のフラグは読み取り専用です (OS によってのみ設定されます)。

DI_DIDCLASS

SetupDiBuildDriverInfoList で、このデバイス クラスのドライバーの一覧が既に作成されている場合に設定します。 このリストが既にビルドされている場合は、すべてのドライバー情報が含まれており、このフラグは常に設定されます。 SetupDiDestroyDriverInfoList は、クラスのドライバーの一覧を削除するときに、このフラグをクリアします。

このフラグは読み取り専用です。 オペレーティング システムのみがこのフラグを設定します。

DI_DIDCOMPAT

SetupDiBuildDriverInfoList で、このデバイスの互換性のあるドライバーの一覧が既に作成されている場合に設定します。 このリストが既にビルドされている場合は、すべてのドライバー情報が含まれており、このフラグは常に設定されます。 SetupDiDestroyDriverInfoList は、互換性のあるドライバーの一覧を削除すると、このフラグをクリアします。

このフラグは、デバイス情報セット全体のパラメーターではなく、特定のデバイス情報要素に関連付けられているデバイス インストール パラメーターでのみ設定されます。

このフラグは読み取り専用です。 オペレーティング システムのみがこのフラグを設定します。

DI_MULTMFGS

デバイス セットアップ クラスのドライバーの一覧に複数の製造元によって提供されるドライバーが含まれている場合は、SetupDiBuildDriverInfoList によって設定されます。

このフラグは読み取り専用です。 オペレーティング システムのみがこのフラグを設定します。

次のフラグが予約されています。

DI_AUTOASSIGNRES

DI_DISABLED

DI_FORCECOPY

DI_GENERALPAGE_ADDED

DI_OVERRIDE_INFFLAGS

DI_SHOWALL

DI_SHOWCLASS

DI_SHOWCOMPAT

次のフラグは廃止されています。

DI_NOSELECTICONS

DI_PROPS_NOCHANGEUSAGE

FlagsEx

インストール操作とユーザー インターフェイス操作を制御する追加フラグ。 一部のフラグはデバイス インストーラー関数を呼び出す前に設定できますが、一部の関数の処理中に他のフラグは自動的に設定されます。 FlagsEx には、次の値の組み合わせを指定できます。

フラグ値は、デバイス インストール アプリケーションとインストーラーによる書き込み可能、読み取り専用 (OS によってのみ設定)、予約済み、および古いグループに一覧表示されます。

最初のグループには、書き込み可能なフラグが一覧表示されます。

DI_FLAGSEX_ALLOWEXCLUDEDDRVS

設定されている場合は、"選択から除外" とマークされたドライバーを含めます。

たとえば、このフラグが設定されている場合、 SetupDiSelectDevice には [選択から除外] 状態のドライバーが表示され、 SetupDiBuildDriverInfoList には要求されたドライバーの一覧に [選択から除外] ドライバーが含まれます。

ドライバーが INF ファイルで ExcludeFromSelect とマークされているか、セットアップ クラス全体がクラス インストーラー INF で NoInstallClass または NoUseClass とマークされているデバイスのドライバーである場合、ドライバーは "選択から除外" になります。 PnP デバイスのドライバーは通常、"選択から除外" です。PnP デバイスを手動でインストールしないでください。 PnP デバイスのドライバー ファイルの一覧を作成するには、 SetupDiBuildDriverInfoList の呼び出し元がこのフラグを設定する必要があります。

DI_FLAGSEX_ALWAYSWRITEIDS

set と DI_NOWRITE_IDS フラグが明確な場合は、常にハードウェア ID と互換性のある ID を devnode のデバイス プロパティに書き込みます。 このフラグは、ルート列挙デバイスにのみ設定する必要があります。

DI_FLAGSEX_APPENDDRIVERLIST

設定すると、 SetupDiBuildDriverInfoList によって新しいドライバー リストが既存のリストに追加されます。 このフラグは、複数の場所を検索する場合に関連します。

DI_FLAGSEX_DRIVERLIST_FROM_URL

設定されている場合は、SP_DEVINSTALL_PARAMSで指定された URL から取得した INF からドライバー リストをビルドします。DriverPathDriverPath が空の文字列の場合は、Windows Update Web サイトを使用します。

現在、オペレーティング システムは URL をサポートしていません。 このフラグを使用して、SetupDiBuildDriverInfoList にWindows Update Web サイトを検索するように指示します。

DI_QUIETINSTALLが設定されている場合は、このフラグを設定しないでください。

DI_FLAGSEX_EXCLUDE_OLD_INET_DRIVERS

設定されている場合は、ドライバー の一覧を作成するときに、古いインターネット ドライバーを含めないでください。 このフラグは、デバイスの潜在的なドライバーの一覧を作成するときにいつでも設定する必要があります。 デバイスに現在インストールされているドライバーの一覧を取得するだけの場合は、このフラグをクリアできます。

DI_FLAGSEX_FILTERCLASSES

設定した場合、SetupDiBuildClassInfoList はクラス包含フィルターに対してチェックされます。 つまり、デバイスのクラスが NoInstallClass としてマークされている場合、デバイスはクラス リストに含まれません。

DI_FLAGSEX_FILTERSIMILARDRIVERS

(Windows XP 以降)。設定されている場合、 SetupDiBuildDriverInfoList には、クラス ドライバー リストを構築するときに "類似" ドライバーが含まれます。 "類似" ドライバーとは、INF ファイル内のハードウェア ID または互換性のある ID の 1 つが、ハードウェア ID またはハードウェアの互換性のある ID のいずれかと一致するドライバーです。

DI_FLAGSEX_FINISHINSTALL_ACTION

(Windows Vista 以降)。詳細については、「 Finish-Install アクションを実行するデバイスとしてマークする 」を参照してください。

DI_FLAGSEX_INET_DRIVER

設定されている場合、ドライバーはインターネットから取得されました。 Windows では、インターネットからドライバー ファイルを再度取得できることを保証できないため、Windows はデバイスの INF を使用して将来のデバイスをインストールしません。

DI_FLAGSEX_INSTALLEDDRIVER

(Windows XP 以降)。設定されている場合、 SetupDiBuildDriverInfoList には、クラス ドライバーまたはデバイス互換ドライバーの一覧を作成するときに、現在インストールされているドライバーのみが含まれます。

DI_FLAGSEX_NO_CLASSLIST_NODE_MERGE

(Windows XP 以降)。設定されている場合、クラス ドライバーの一覧を作成するときに、 SetupDiBuildDriverInfoList は、同じ INF から同じドライバーの説明とランクを持つドライバーリスト内のノードをマージしません。

DI_FLAGSEX_NO_DRVREG_MODIFY

デバイスのハードウェアとソフトウェア (ドライバー) キーの AddReg エントリと DelReg エントリを処理しないでください。 つまり、INF ファイル DDInstallDDInstallAddReg エントリと DelReg エントリです。HW セクション。

DI_FLAGSEX_POWERPAGE_ADDED

設定した場合、インストーラーは電源プロパティ ダイアログ用の独自のページを追加しました。 オペレーティング システムには、システム指定の電源プロパティ ページは表示されません。 このフラグは、デバイスが電源管理をサポートしている場合にのみ関連します。

DI_FLAGSEX_PROPCHANGE_PENDING

設定した場合、ユーザーは 1 つ以上のデバイス プロパティ シートに変更を加えました。 通常、プロパティ ページ プロバイダーは、このフラグを設定します。

ユーザーがデバイス プロパティ シートを閉じると、デバイス マネージャー DI_FLAGSEX_PROPCHANGE_PENDING フラグがチェックされます。 設定されている場合、デバイス マネージャーはこのフラグをクリアし、DI_PROPERTIES_CHANGE フラグを設定し、インストーラーにDIF_PROPERTYCHANGE要求を送信して、何かが変更されたことを通知します。

DI_FLAGSEX_RECURSIVESEARCH

(Windows Vista 以降)。設定されている場合、 SetupDiBuildDriverInfoListDriverPath 値で指定されたパス内の INF を検索すると、検索は再帰的になります。

DI_FLAGSEX_SEARCH_PUBLISHED_INFS

(Windows Vista 以降)。設定されている場合、INF パスまたは検索パスが指定されていない INF を検索するために SetupDiBuildDriverInfoList を使用すると、ドライバー ストアにインポートされた INF のみに検索が制限されます。

DI_FLAGSEX_SETFAILEDINSTALL

インストールに失敗した場合は を設定します。 このフラグが設定されている場合、 SetupDiInstallDevice 関数は、デバイスの ConfigFlags レジストリ値に FAILEDINSTALL フラグを設定するだけです。 DI_FLAGSEX_SETFAILEDINSTALLが設定されている場合、共同インストーラーはDIF_INSTALLDEVICEに応答してNO_ERRORを返す必要があります。一方、クラス インストーラーはNO_ERRORまたはERROR_DI_DO_DEFAULTを返す必要があります。

DI_FLAGSEX_USECLASSFORCOMPAT

互換性のあるドライバーの一覧をビルドするときに、デバイスのセットアップ クラスで INF ファイルをフィルター処理します。 デバイスのセットアップ クラスがわかっている場合、このフラグを設定すると、プリコンパイルされていない INF ファイルを検索するときに互換性のあるドライバーの一覧を作成するために必要な時間が短縮されます。 DI_COMPAT_FROM_CLASSが設定されている場合、このフラグは無視されます。

次のフラグは読み取り専用です。オペレーティング システムのみがこれらのフラグを設定します。

DI_FLAGSEX_CI_FAILED

クラス インストーラーが読み込みまたは起動に失敗した場合は、オペレーティング システムによって設定されます。 このフラグは読み取り専用です。

DI_FLAGSEX_DIDCOMPATINFO

Windows では、デバイスと互換性のある ドライバー ノード の一覧が作成されています。 このフラグは読み取り専用です。

DI_FLAGSEX_DIDINFOLIST

Windows には、指定したセットアップ クラスの INF ファイルに一覧表示されているすべてのドライバーを含むドライバー ノードの一覧が作成されています。 HDEVINFO セットまたはデバイスに関連付けられたクラスがないため、指定されたセットアップ クラスが NULL の 場合、リストには使用可能なすべての INF ファイルのすべてのドライバー ノードが含まれます。 このフラグは読み取り専用です。

DI_FLAGSEX_IN_SYSTEM_SETUP

設定すると、システムの初期セットアップ中にインストールが行われます。 このフラグは読み取り専用です。

次のフラグは予約されており、使用しないでください。

DI_FLAGSEX_ALTPLATFORM_DRVSEARCH

DI_FLAGSEX_BACKUPONREPLACE

DI_FLAGSEX_DEVICECHANGE

DI_FLAGSEX_OLDINF_IN_CLASSLIST

DI_FLAGSEX_PREINSTALLBACKUP

DI_FLAGSEX_RESTART_DEVICE_ONLY

DI_FLAGSEX_USEOLDINFSEARCH

次のフラグは廃止されています。

DI_FLAGSEX_AUTOSELECTRANK0

DI_FLAGSEX_NOUIONQUERYREMOVE

hwndParent

このデバイスに関連するユーザー インターフェイス ダイアログを所有するウィンドウ ハンドル。

InstallMsgHandler

ファイルのコピー中にイベントを処理するために使用されるコールバック。 インストーラーは、たとえば、ファイル キューをコミットするときに特別な処理を実行するコールバックを使用できます。

InstallMsgHandlerContext

InstallMsgHandler コールバックによって使用されるプライベート データ。

FileQueue

呼び出し元が指定したファイル キューへのハンドル。ファイル操作はキューに入れる必要がありますが、コミットは行われません。

ファイル キューをデバイス情報セット (SetupDiSetDeviceInstallParams) に関連付ける場合は、デバイス情報セットを削除する前に、デバイス情報セットからキューの関連付けを解除する必要があります。 ファイル キューの関連付けを解除できない場合、Windows はデバイス情報セットの参照カウントを減らすことができないので、メモリを解放できません。

このキューは、DI_NOVCP フラグが設定されている場合にのみ使用されます。これは、ファイル操作をエンキューする必要がありますが、コミットしないことを示します。

ClassInstallReserved

クラス インストーラー データのポインター。 共同インストーラーでは、このフィールドを使用しないでください。

Reserved

予約済み。 内部使用専用です。

DriverPath[MAX_PATH]

このパスは、 SetupDiBuildDriverInfoList 関数によって使用されます。

注釈

注意

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

要件

要件
Header setupapi.h (Setupapi.h を含む)

こちらもご覧ください

SetupDiBuildClassInfoList

SetupDiBuildDriverInfoList

SetupDiCallClassInstaller

SetupDiGetDeviceInstallParams

SetupDiInstallDevice

SetupDiSelectDevice

SetupDiSetDeviceInstallParams