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 和 InstallHinfSectionW 的 InstallHinfSection (。
若要執行指定 .inf 檔案的 Install 區段,您可以使用下列語法,使用 Rundll32.exe 叫用 InstallHinfSection 。
RUNDLL32.EXE SETUPAPI.DLL,InstallHinfSection 區段<><模式><路徑>
這會將「<區段><模式><路徑>」傳遞至 CmdLineBuffer。
或者,您的程式可能會直接呼叫 InstallHinfSection、 InstallHinfSectionA 或 InstallHinfSectionW ,並將 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 |
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應