次の方法で共有


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 、INF ファイルではなく、クラス ドライバーの一覧からデバイスの互換性のあるドライバーの一覧をビルドするように設定します。

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

インストーラーやその他の デバイス インストール コンポーネント、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

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

DI_FLAGSEX_APPENDDRIVERLIST

設定した場合、SetupDiBuildDriverInfoList 既存の一覧に新しいドライバーの一覧が追加されます。 このフラグは、複数の場所を検索する場合に関連します。

DI_FLAGSEX_DRIVERLIST_FROM_URL

設定されている場合は、SP_DEVINSTALL_PARAMSで指定された URL から取得した INF からドライバーの一覧をビルドします。DriverPathをします。 DriverPath が空の文字列の場合は、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 は、インターネットからドライバー ファイルを再度取得できることを保証できないため、デバイスの INF を使用して将来のデバイスをインストールしません。

DI_FLAGSEX_INSTALLEDDRIVER

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

DI_FLAGSEX_NO_CLASSLIST_NODE_MERGE

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

DI_FLAGSEX_NO_DRVREG_MODIFY

デバイスのハードウェアおよびソフトウェア (ドライバー) キーの AddRegDelReg エントリを処理しないでください。 つまり、AddRegDelReg エントリは、DDInstall と DDInstallINF ファイルに含まれます。HW セクション。

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 場合、一覧には使用可能なすべての 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を定義します。 エンコードに依存しないエイリアスをエンコードに依存しないコードと組み合わせて使用すると、コンパイルエラーやランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「関数プロトタイプの 規則」を参照してください。

必要条件

要件 価値
ヘッダー setupapi.h (Setupapi.h を含む)

関連項目

SetupDiBuildClassInfoList の

SetupDiBuildDriverInfoList の

SetupDiCallClassInstaller の

SetupDiGetDeviceInstallParams の

SetupDiInstallDevice の

SetupDiSelectDevice の

SetupDiSetDeviceInstallParams の