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 バッファーのサイズ (文字単位)。 InfSectionWithExtNULL の場合、このパラメーターは 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 を検索します。
関数は、名前、オペレーティング システム、およびプロセッサ アーキテクチャの一致を検出すると、検索を終了し、対応する装飾された名前を返します。 関数でこのような一致が見つからない場合、関数は InstallSec.NT という名前のセクションを検索します。 関数が InstallSec.NT の一致を検出すると、検索が終了し、この名前が返されます。 関数は、上記の検索のいずれにも一致するものが見つからない場合、 InstallSec を返しますが、INF ファイルに InstallSec という名前のインストール セクションが含まれていることは確認しません。

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

こちらもご覧ください

INF DDInstall セクション

SetupDiGetActualSectionToInstallEx

SetupDiInstallDevice