共用方式為


InstallHinfSectionA 函式 (setupapi.h)

[此函式可用於需求一節所指出的作業系統。 後續版本可能會變更或無法使用。 安裝程式API 不應該再用於安裝應用程式。 請改用 Windows Installer 來開發應用程式安裝程式。 SetupAPI 會繼續用於安裝設備驅動器。]

InstallHinfSection 是 Setupapi.dll 導出的進入點函式,可用來執行 .inf 檔案的區段。 InstallHinfSection 可藉由呼叫 Rundll32.exe 公用程式來叫用,如一節所述。

InstallHinfSection 函式的原型遵循與 Rundll32.exe搭配使用的所有進入點函式形式。

如果複製或修改檔案,則此函式的呼叫端必須具有寫入目標目錄的許可權。 如果已安裝任何服務,則此函式的呼叫端必須能夠存取 Service Control Manager

語法

void InstallHinfSectionA(
  [in] HWND      Window,
  [in] HINSTANCE ModuleHandle,
  [in] PCSTR     CommandLine,
  [in] INT       ShowCommand
);

參數

[in] Window

父視窗句柄。 通常 hwnd 為 Null。

[in] ModuleHandle

保留且應該是 Null。

[in] CommandLine

包含命令行之緩衝區的指標。 您應該使用以 Null 結尾的字串。

[in] ShowCommand

保留且應為零。

傳回值

沒有

言論

請注意,有三個匯出存在:InstallHinfSection(適用於 RunDll32)、InstallHinfSectionAInstallHinfSectionW

若要執行指定之 .inf 檔案的 Install 區段,您可以使用下列語法叫用 InstallHinfSection 搭配 Rundll32.exe。

RUNDLL32.EXE SETUPAPI.DLL,InstallHinfSection <區段><模式><路徑>

這會將 「<區段><模式><路徑>」 傳遞至 CmdLineBuffer

或者,您的程式可能會直接 呼叫 installHinfSectionInstallHinfSectionA或直接 InstallHinfSectionW,將 CmdLineBuffer 參數設定為下列參數。

"<section> <mode> <path>"

其中 路徑 是 .inf 檔案的完整路徑,模式 是重新啟動模式參數,而 區段 是 .inf 檔案中任何 Install 區段。 命令行上需要SETUPAPI.DLL與 InstallHinfSection 之間的逗號分隔符。 請注意,在逗號與 SETUPAPI.DLL 或 InstallHinfSection之間,命令行上沒有任何空格符。

建議您將 .inf 檔案的完整路徑指定為 路徑

您可以將 .inf 檔案中的任何 Install 區段指定為區段。 不允許空格。

您應該針對 模式使用下列值的組合。 您必須包含 128,才能將安裝的預設路徑設定為 INF 的位置,否則會假設系統提供的 INF。 新增值以指定重新啟動。 請注意,建議只使用 128 或 132 的值,其他值可能會導致計算機在需要時不必要地重新啟動或未重新啟動。

價值 描述
0 系統提供的 INF。
128 將安裝的預設路徑設定為 INF 的位置。 這是一般設定。
+0 永遠不要重新啟動電腦。
+1 在所有情況下重新啟動電腦。
+2 請一律詢問使用者是否要重新啟動。
+3 如有必要,請重新啟動計算機,而不要求使用者取得許可權。
+4 如果需要重新啟動計算機,請在重新啟動之前要求使用者取得許可權。
 
 

例如,下列命令行會執行Shell.inf檔案的DefaultInstall區段。 如果安裝程序判斷需要重新啟動,則會提示用戶出現 [重新啟動計算機]、[是/否] 對話框。

RUNDLL32.EXE SETUPAPI.DLL,InstallHinfSection DefaultInstall 132 C:\WINDOWS\INF\SHELL。INF

注意

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

謹慎

在 x86 或 amd64 以外的架構上使用時, 或在 S 模式的系統上使用 時,InstallHInfSection 會要求 INF 檔案具有 INF 版本區段,且具有 CatalogFile 指示詞,指向包含 INF 檔案哈希的已簽署類別目錄檔案,以及透過 INF SourceDisksFiles 區段參考之 INF 檔案參考的任何檔案

謹慎

在原生架構不是 x86 或 amd64 的系統上使用時,應該從原生架構程式使用 InstallHInfSection。 InstallHInfSection 會在從非原生架構程式使用時封鎖許多類型的系統狀態變更作業。

要求

要求 價值
最低支援的用戶端 Windows XP [僅限傳統型應用程式]
支援的最低伺服器 Windows Server 2003 [僅限傳統型應用程式]
目標平臺 窗戶
標頭 setupapi.h
連結庫 Setupapi.lib
DLL Setupapi.dll