共用方式為


InstallHinfSectionW 函式 (setupapi.h)

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

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

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

如果複製或修改檔案,則需要此函式的呼叫端具有寫入目標目錄的許可權。 如果已安裝任何服務,則需要此函式的呼叫端才能存取 服務控制管理員

語法

void InstallHinfSectionW(
  [in] HWND      Window,
  [in] HINSTANCE ModuleHandle,
  [in] PCWSTR    CommandLine,
  [in] INT       ShowCommand
);

參數

[in] Window

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

[in] ModuleHandle

保留且應為 Null。

[in] CommandLine

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

[in] ShowCommand

保留且應為零。

傳回值

備註

請注意,有三個導出存在:RunDll32) 、InstallHinfSectionA 和 InstallHinfSectionWInstallHinfSection (。

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

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

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

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

"<section> <mode> <path>"

其中 path 是 .inf 檔案的完整路徑,mode 是 reboot mode 參數,而 section 是 .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 [僅限桌面應用程式]
目標平台 Windows
標頭 setupapi.h
程式庫 Setupapi.lib
Dll Setupapi.dll