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
インストールとユーザー インターフェイスの操作を制御するフラグ。 一部のフラグは、デバイスのインストール要求を送信する前に設定できますが、一部の要求の処理中に他のフラグが自動的に設定されます。 Flags には、次の値を組み合わせて使用できます。
フラグの値は、デバイス インストール アプリケーション およびインストーラーによって書き込み可能、読み取り専用 (OS によってのみ設定)、予約済み、および廃止されたグループに一覧表示されます。 最初のグループには、書き込み可能なフラグが一覧表示されます。
DI_CLASSINSTALLPARAMS
Class Install パラメーターを使用するように設定します。 SetupDiSetClassInstallParams 呼び出し元がパラメーターを指定し、呼び出し元が NULL パラメーター ポインターを指定するときにフラグをクリアするときに、このフラグを設定します。
DI_COMPAT_FROM_CLASS
SetupDiBuildDriverInfoList
DI_DRIVERPAGE_ADDED
システム提供のドライバーのプロパティ ページを置き換えるページがインストーラーによって提供される場合は、クラス インストーラーまたは共同インストーラーによって設定されます。 このフラグが設定されている場合、オペレーティング システムには、システム提供のドライバー ページは表示されません。
DI_DONOTCALLCONFIGMG
特定のデバイス インストール機能 (SetupDiInstallDevice
このフラグが設定されている場合、デバイス インストール アプリケーション、クラス インストーラー、および共同インストーラーは、次の関数を呼び出してはなりません。
CM_Reenumerate_DevNodeCM_Reenumerate_DevNode_ExCM_Query_And_Remove_SubTreeCM_Query_And_Remove_SubTree_ExCM_Setup_DevNodeCM_Setup_DevNode_ExCM_Set_HW_Prof_FlagsCM_Set_HW_Prof_Flags_ExCM_Enable_DevNodeCM_Enable_DevNode_ExCM_Disable_DevNodeCM_Disable_DevNode_Ex
DI_ENUMSINGLEINF
インストーラーやその他の
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
このフラグは、DI_FLAGSEX_ALWAYSWRITEIDS フラグをオーバーライドします。
DI_PROPERTIES_CHANGE
デバイスのプロパティが変更された場合にデバイス マネージャーによって設定されます。これには、インストーラーのユーザー インターフェイスの更新が必要です。
DI_QUIETINSTALL
デバイス インストーラー関数をサイレントにし、可能な限り既定の選択肢を使用する必要があるかどうかを設定します。 このフラグが設定されている場合、クラス インストーラーと共同インストーラーは UI を表示できません。
DI_RESOURCEPAGE_ADDED
システム提供のリソース プロパティ ページを置き換えるページがインストーラーによって提供される場合は、クラス インストーラーまたは共同インストーラーによって設定されます。 このフラグが設定されている場合、オペレーティング・システムはシステム指定のリソース・ページを表示しません。
DI_SHOWOEM
OEM ディスクのサポートを許可するように設定します。 このフラグが設定されている場合、オペレーティング システムの [デバイスの選択] ページに [ディスクがある] ボタンが表示されます。 このフラグは、システム指定のウィザードで既定で設定されます。
DI_USECI_SELECTSTRINGS
クラス インストーラーまたは共同インストーラーが、SetupDiSelectDevice中に使用する必要がある文字列
次のフラグは読み取り専用です (OS によってのみ設定されます)。
DI_DIDCLASS
SetupDiBuildDriverInfoList
このフラグは読み取り専用です。 このフラグは、オペレーティング システムによってのみ設定されます。
DI_DIDCOMPAT
SetupDiBuildDriverInfoList
このフラグは、特定のデバイス情報要素に関連付けられているデバイス インストール パラメーターでのみ設定され、デバイス情報セット全体のパラメーターには設定されません。
このフラグは読み取り専用です。 このフラグは、オペレーティング システムによってのみ設定されます。
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
設定されている場合は、"選択から除外" とマークされたドライバーを含めます。
たとえば、このフラグが設定されている場合、
ドライバーは、INF ファイルで ExcludeFromSelect
DI_FLAGSEX_ALWAYSWRITEIDS
設定され、DI_NOWRITE_IDS フラグがクリアされている場合は、常にハードウェア ID と互換性のある ID を devnode のデバイス プロパティに書き込みます。 このフラグは、ルート列挙デバイスにのみ設定する必要があります。
DI_FLAGSEX_APPENDDRIVERLIST
設定した場合、SetupDiBuildDriverInfoList
DI_FLAGSEX_DRIVERLIST_FROM_URL
設定されている場合は、SP_DEVINSTALL_PARAMSで指定された URL から取得した INF からドライバーの一覧をビルドします。DriverPathを
現在、オペレーティング システムは URL をサポートしていません。 このフラグを使用して、SetupDiBuildDriverInfoList に Windows Update Web サイトを検索するように指示します。
DI_QUIETINSTALLが設定されている場合は、このフラグを設定しないでください。
DI_FLAGSEX_EXCLUDE_OLD_INET_DRIVERS
設定されている場合は、ドライバーの一覧を構築するときに、古いインターネット ドライバーを含めないでください。 このフラグは、デバイスの潜在的なドライバーの一覧を作成するときにいつでも設定する必要があります。 デバイスに現在インストールされているドライバーの一覧を取得するだけの場合は、このフラグをクリアできます。
DI_FLAGSEX_FILTERCLASSES
設定した場合、SetupDiBuildClassInfoList
DI_FLAGSEX_FILTERSIMILARDRIVERS
(Windows XP 以降)。設定されている場合、SetupDiBuildDriverInfoList
DI_FLAGSEX_FINISHINSTALL_ACTION
(Windows Vista 以降)。詳細については、「 を実行する Finish-Install アクションを持つものとしてデバイスをマークする
DI_FLAGSEX_INET_DRIVER
設定した場合、ドライバーはインターネットから取得されました。 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 エントリを処理しないでください。 つまり、
DI_FLAGSEX_POWERPAGE_ADDED
設定すると、インストーラーによって電源プロパティ ダイアログ用の独自のページが追加されます。 オペレーティング システムには、システム指定の電源プロパティ ページは表示されません。 このフラグは、デバイスが電源管理をサポートしている場合にのみ関連します。
DI_FLAGSEX_PROPCHANGE_PENDING
設定すると、ユーザーは 1 つ以上のデバイス プロパティ シートに変更を加えます。 通常、プロパティ ページ プロバイダーは、このフラグを設定します。
ユーザーがデバイス プロパティ シートを閉じると、デバイス マネージャーは DI_FLAGSEX_PROPCHANGE_PENDING フラグを確認します。 このフラグが設定されている場合、デバイス マネージャーはこのフラグをクリアし、DI_PROPERTIES_CHANGE フラグを設定し、インストーラーにDIF_PROPERTYCHANGE要求を送信して、何かが変更されたことを通知します。
DI_FLAGSEX_RECURSIVESEARCH
(Windows Vista 以降)。設定した場合、SetupDiBuildDriverInfoList DriverPath 値で指定されたパス内の INF を検索すると、検索は再帰的になります。
DI_FLAGSEX_SEARCH_PUBLISHED_INFS
(Windows Vista 以降)。設定した場合、SetupDiBuildDriverInfoList を使用して INF パスまたは検索パスを指定せずに INF を検索すると、ドライバー ストアにインポートされた 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
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
このキューは、DI_NOVCP フラグが設定されている場合にのみ使用されます。これは、ファイル操作をエンキューする必要がありますが、コミットしないことを示します。
ClassInstallReserved
クラス インストーラー データのポインター。 共同インストーラーでは、このフィールドを使用しないでください。
Reserved
引っ込み思案。 内部使用のみ。
DriverPath[MAX_PATH]
このパスは、SetupDiBuildDriverInfoList 関数によって使用されます。
備考
手記
setupapi.h ヘッダーは、unicode プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択するエイリアスとしてSP_DEVINSTALL_PARAMSを定義します。 エンコードに依存しないエイリアスをエンコードに依存しないコードと組み合わせて使用すると、コンパイルエラーやランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「関数プロトタイプの 規則」を参照してください。
必要条件
要件 | 価値 |
---|---|
ヘッダー | setupapi.h (Setupapi.h を含む) |
関連項目
SetupDiBuildClassInfoList の
SetupDiBuildDriverInfoList の
SetupDiCallClassInstaller の
SetupDiGetDeviceInstallParams の
SetupDiInstallDevice の
SetupDiSelectDevice の
SetupDiSetDeviceInstallParams の