SetupOpenInfFileA 函式 (setupapi.h)
[此函式可用於需求一節中所述的操作系統。 它在後續版本中可能會變更或無法使用。 安裝程式API不應再用於安裝應用程式。 請改用 Windows Installer 來開發應用程式安裝程式。 SetupAPI 會繼續用於安裝設備驅動器。]
SetupOpenInfFile 函式會開啟 INF 檔案,並傳回它的句柄。
語法
WINSETUPAPI HINF SetupOpenInfFileA(
[in] PCSTR FileName,
[in] PCSTR InfClass,
[in] DWORD InfStyle,
[in] PUINT ErrorLine
);
參數
[in] FileName
Null 終止字串的指標,其中包含要開啟之 INF 檔案的名稱 (和選擇性路徑) 。 如果檔名不包含路徑分隔符,則會先在 %windir%\inf 目錄中搜尋,然後在 %windir%\system32 目錄中搜尋。 如果檔名包含路徑分隔符,則會假設它是完整路徑規格,而且不會對它執行進一步處理。
[in] InfClass
包含所需 INF 檔案類別之 Null 終止字串的選擇性指標。 此字串必須符合 Version 區段的 Class 值 (,例如 Class=Net) 。 如果 [類別] 值中沒有專案,但在 [ 版本 ] 區段中有 ClassGUID 的專案,則會擷取該 GUID 的對應類別名稱,並用於比較。
[in] InfStyle
要開啟或搜尋的 INF 檔案樣式。 此參數可以是下列旗標的組合。
INF_STYLE_OLDNT
舊版 INF 檔案格式。
INF_STYLE_WIN4
Windows INF 檔案格式。
[in] ErrorLine
此函式傳回 (1 型) 行號的變數選擇性指標,其中載入 INF 檔案期間發生錯誤。 只有在 GetLastError 未傳回ERROR_NOT_ENOUGH_MEMORY時,這個值通常才可靠。 如果發生記憶體不足的情況, ErrorLine 可能是 0。
傳回值
如果開啟的 INF 檔案成功,函式會傳回句柄。 否則,傳回值會INVALID_HANDLE_VALUE。 呼叫 GetLastError 即可擷取擴充錯誤資訊。
備註
如果載入失敗,因為 INF 檔類型不符合 InfClass,函式會傳回INVALID_HANDLE_VALUE,而 GetLastError 的呼叫會傳回ERROR_CLASS_MISMATCH。
如果指定了多個 INF 檔案樣式,則可以呼叫 SetupGetInfInformation 函式來判斷開啟 INF 檔案的樣式。
因為可能有一個以上的類別 GUID 具有相同類別名稱,所以對特定類別的 INF 檔案感興趣的呼叫者 (亦即,特定類別 GUID) 應該藉由呼叫 SetupQueryInfVersionInformation 從 INF 檔案擷取 ClassGUID 值。
對於舊版 INF 檔案, InfClass 字串必須符合 INF 檔案中 Id 區段的 OptionType 值中指定的類型 (,例如 OptionType=NetAdapter) 。
注意
setupapi.h 標頭會將 SetupOpenInfFile 定義為別名,根據 UNICODE 預處理器常數的定義,自動選取此函式的 ANSI 或 Unicode 版本。 混合使用編碼中性別名與非編碼中性的程序代碼,可能會導致編譯或運行時間錯誤不符。 如需詳細資訊,請參閱 函式原型的慣例。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows XP [僅限傳統型應用程式] |
最低支援的伺服器 | Windows Server 2003 [僅限桌面應用程式] |
目標平台 | Windows |
標頭 | setupapi.h |
程式庫 | Setupapi.lib |
Dll | Setupapi.dll |
API 集合 | ext-ms-win-setupapi-inf-l1-1-0 (Windows 8) |
請參閱
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應