SetupDiGetActualSectionToInstallW 関数 (setupapi.h)
SetupDiGetActualSectionToInstall 関数は、ローカル コンピューター上のデバイス INF ファイルからデバイスをインストールするときに使用する適切な INF DDInstall セクションを取得します。
構文
WINSETUPAPI BOOL SetupDiGetActualSectionToInstallW(
[in] HINF InfHandle,
[in] PCWSTR InfSectionName,
[out, optional] PWSTR InfSectionWithExt,
[in] DWORD InfSectionWithExtSize,
[out, optional] PDWORD RequiredSize,
[out, optional] PWSTR *Extension
);
パラメーター
[in] InfHandle
DDInstall セクションを含む INF ファイルへのハンドル。
[in] InfSectionName
DDInstall セクション名へのポインター (INF モデル セクションで指定)。 セクション名の最大長 (文字数) は 254 です。
[out, optional] InfSectionWithExt
DDInstall セクション名、そのプラットフォーム拡張機能、および NULL ターミネータを受け取る文字バッファーへのポインター。 これは、インストールに使用する必要がある装飾セクション名です。 このパラメーターが NULL の場合、 InfSectionWithExtSize は 0 である必要があります。 このパラメーターが NULL の場合、関数は TRUE を返し、DDInstall セクション名、そのプラットフォーム拡張機能、および終了 NULL 文字を返すために必要なサイズ (文字単位) に RequiredSize を設定します。
[in] InfSectionWithExtSize
InfSectionWithExt バッファーのサイズ (文字単位)。 InfSectionWithExt が NULL の場合、このパラメーターは 0 である必要があります。
[out, optional] RequiredSize
DDInstall セクション名、プラットフォーム拡張機能、および終端 NULL 文字を返すために必要なサイズを文字単位で受け取る変数へのポインター。
[out, optional] Extension
InfSectionWithExt バッファー内の拡張機能の開始をマークする '.' 文字へのポインターを受け取る変数へのポインター。 InfSectionWithExt バッファーが指定されていないか、小さすぎる場合、このパラメーターは設定されません。 拡張機能へのポインターが必要ない場合は、このパラメーターを NULL に設定します。
戻り値
関数が成功すると、 TRUE が返されます。 関数が失敗すると、 FALSE が返されます。 詳細なエラー情報を得るには、GetLastError を呼び出します。
解説
この関数は、デバイスの OS 固有およびアーキテクチャ固有のインストール動作を指定するために使用される DDInstall セクション名の拡張機能をサポートします。 これらの拡張機能の詳細については、「 複数のプラットフォームとオペレーティング システム用の INF ファイルの作成」を参照してください。 SetupDiGetActualSectionToInstall は、以下で説明する方法でローカル コンピューターと一致する DDInstall セクション名を検索します。
関数は、指定した INF ファイル内で、指定した名前に一致し、ローカル コンピューターのオペレーティング システムとプロセッサ アーキテクチャに一致する拡張機能を持つ装飾されたインストール セクション名を検索します。 たとえば、 InstallSec のセクション名を指定した場合、関数はローカル コンピューターのプロセッサ アーキテクチャに応じて、次のいずれかの修飾名を検索します。
- x86 プロセッサ アーキテクチャに基づくコンピューターの場合、関数は 装飾名 InstallSec.ntx86 を検索します。
- x64 プロセッサ アーキテクチャに基づくコンピューターの場合、関数は 装飾名 InstallSec.ntamd64 を検索します。
- Itanium プロセッサ アーキテクチャに基づくコンピューターの場合、関数は 装飾名 InstallSec.ntia64 を検索します。
DDInstall セクション名は、Hardware および Services セクション名のベースとして使用されます。 たとえば、 見つかった DDInstall セクション名が InstallSec.NTX86 の場合、 サービス セクション名には InstallSec.NTX86.Services という名前を付ける必要があります。
ドライバー ノードで指定された元の DDInstall セクション名は、ドライバーのレジストリ キーの InfSection 値エントリに書き込まれます。 見つかった拡張機能は、REG_SZ値 InfSectionExt としてキーに格納されます。 例:
InfSection : REG_SZ : "InstallSec"
InfSectionExt : REG_SZ : ".NTX86"
指定したデバイス情報要素に対してドライバーが選択されていない場合は、null ドライバーがインストールされます。 戻ると、デバイスの SP_DEVINSTALL_PARAMS 構造のフラグは、デバイスを起動するためにシステムを再起動するか再起動するかを示します。
注意
setupapi.h ヘッダーは、Unicode プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択するエイリアスとして SetupDiGetActualSectionToInstall を定義します。 encoding-neutral エイリアスの使用を encoding-neutral ではないコードと混在すると、コンパイル エラーまたはランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「 関数プロトタイプの規則」を参照してください。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Microsoft Windows 2000 以降のバージョンの Windows で使用できます。 |
対象プラットフォーム | デスクトップ |
Header | setupapi.h (Setupapi.h を含む) |
Library | Setupapi.lib |