SetupDiGetActualSectionToInstallExA 函式 (setupapi.h)

SetupDiGetActualSectionToInstallEx 函式會擷取 INF DDInstall 區段的名稱,該區段會為指定的操作系統和處理器架構安裝裝置。

語法

WINSETUPAPI BOOL SetupDiGetActualSectionToInstallExA(
  [in]            HINF                 InfHandle,
  [in]            PCSTR                InfSectionName,
  [in, optional]  PSP_ALTPLATFORM_INFO AlternatePlatformInfo,
  [out, optional] PSTR                 InfSectionWithExt,
  [in]            DWORD                InfSectionWithExtSize,
  [out, optional] PDWORD               RequiredSize,
  [out, optional] PSTR                 *Extension,
                  PVOID                Reserved
);

參數

[in] InfHandle

包含 DDInstall 區段之 INF 檔案的句柄。

[in] InfSectionName

DDInstall 區段名稱的指標,如 INF Models 區段) 中所指定 (。 區段名稱的最大長度,以字元為單位為254。

[in, optional] AlternatePlatformInfo

若為非 NULL,則為 SP_ALTPLATFORM_INFO 結構的指標。 此結構是用來指定與本機計算機上不同的操作系統和處理器架構。 若要傳回本機計算機的 DDInstall 區段名稱,請將此參數設定為 NULL。 否則,請提供SP_ALTPLATFORM結構,並設定其成員,如下所示:

cbSize

設定為 SP_ALTPLATFORM_INFO 結構的大小,以位元組為單位。

平台

設定為 windows XP 和更新版本的 Windows VER_PLATFORM_WIN32_NT。

MajorVersion

未使用。

MinorVersion

未使用。

ProcessorArchitecture

設定下列其中一個處理器架構常數。

處理器架構常數 意義
PROCESSOR_ARCHITECTURE_INTEL 替代平臺是以 x86 為基礎的處理器架構。
PROCESSOR_ARCHITECTURE_IA64 替代平臺是以Itanium 為基礎的處理器架構。
PROCESSOR_ARCHITECTURE_AMD64 替代平臺是以 x64 為基礎的處理器架構。
 

保留

設定為零。

[out, optional] InfSectionWithExt

要接收 DDInstall 區段名稱、其平臺延伸模組和 NULL 終止符之字元緩衝區的指標。 這是應該用於安裝的裝飾區段名稱。 如果此參數為 NULL,函式會傳回 TRUE ,並將 RequiredSize 設定為大小,以字元為單位,這是傳回 DDInstall 區段名稱、其平臺延伸模組和終止 NULL 字元所需的字元。

[in] InfSectionWithExtSize

InfSectionWithExt 參數所指向緩衝區的大小,以字元為單位。 以字元為單位的 NULL 終止 INF 區段名稱長度上限為 MAX_INF_SECTION_NAME_LENGTH。

[out, optional] RequiredSize

接收大小之變數的指標,以字元為單位,這是傳回 DDInstall 區段名稱、平臺延伸模組和終止 NULL 字元所需的指標。

[out, optional] Extension

變數的指標,接收 '.' 字元的指標,這個字元會標記 InfSectionWithExt 緩衝區中的延伸模塊開頭。 如果未提供 InfSectionWithExt 緩衝區或太小,則不會設定此參數。 如果不需要延伸模組的指標,請將此參數設定為 NULL

Reserved

已保留供內部使用。 必須設定為 NULL

傳回值

如果函式成功,則會傳回 TRUE。 否則會傳回 FALSE。 若要取得擴充的錯誤資訊,請呼叫 GetLastError

備註

SetupDiGetActualSectionToInstallExSetupDiGetActualSectionToInstall 的擴充形式。 這些函式支援 DDInstall 區段名稱的擴充功能,這些名稱可用來指定裝置的 OS 特定和架構特定安裝動作。 如需這些延伸模組的相關信息,請參閱 建立多個平臺和操作系統的 INF 檔案

如果您未透過呼叫 SetupDiGetActualSectionToInstallEx 來提供替代平台資訊,此函式會執行與 SetupDiGetActualSectionToInstall 相同的作業。 後者的函式會使用本機計算機的平臺資訊來搜尋指定的安裝區段名稱。

如果您使用 對 SetupDiGetActualSectionToInstallEx 的呼叫來提供替代平台資訊,此函式會執行下列動作:

  • 如果您指定VER_PLATFORM_WIN32_NT的平臺,函式會先在指定的 INF 檔案中搜尋符合您所指定名稱、操作系統和處理器架構的裝飾安裝區段名稱。 例如,如果您指定 InstallSec 的 install 區段名稱,函式會根據指定的處理器架構搜尋下列其中一個裝飾名稱:
    • 如果您指定以 x86 為基礎的處理器架構,函式會搜尋裝飾名稱 InstallSec.ntx86
    • 如果您指定 x64 型處理器架構,函式會搜尋裝飾名稱 InstallSec.ntamd64
    • 如果您指定 Itanium 型處理器架構,函式會搜尋裝飾名稱 InstallSec.ntia64

    如果函式找到名稱、操作系統和處理器架構的相符專案,它會終止搜尋並傳回對應的裝飾名稱。 如果函式找不到這類相符專案,函式會搜尋名稱為 InstallSec.nt 的區段。 如果函式找到 InstallSec.nt 的相符專案,它會終止搜尋並傳回此名稱。 如果函式找不到上述任一搜尋的相符專案,它會傳回 InstallSec,但不會驗證 INF 檔案是否包含名稱為 InstallSec 的安裝區段。

注意

setupapi.h 標頭會根據 UNICODE 預處理器常數的定義,將 SetupDiGetActualSectionToInstallEx 定義為別名,自動選取此函式的 ANSI 或 Unicode 版本。 混合使用編碼中性別名與非編碼中性的程序代碼,可能會導致編譯或運行時間錯誤不符。 如需詳細資訊,請參閱 函式原型的慣例

規格需求

需求
最低支援的用戶端 可在 Windows XP 和更新版本的 Windows 中使用。
目標平台 桌面
標頭 setupapi.h (包括 Setupapi.h)
程式庫 Setupapi.lib

另請參閱

INF DDInstall 區段

SetupDiGetActualSectionToInstallEx

SetupDiInstallDevice