SetupGetInfInformationA 函式 (setupapi.h)
[此函式可用於需求一節中所述的操作系統。 它在後續版本中可能會變更或無法使用。 安裝程式API不應再用於安裝應用程式。 請改用 Windows Installer 來開發應用程式安裝程式。 SetupAPI 會繼續用於安裝設備驅動器。]
SetUpGetInfInformation 函式會將指定 INF 檔案的 SP_INF_INFORMATION 結構傳回緩衝區。
語法
WINSETUPAPI BOOL SetupGetInfInformationA(
[in] LPCVOID InfSpec,
[in] DWORD SearchControl,
[in, out] PSP_INF_INFORMATION ReturnBuffer,
[in] DWORD ReturnBufferSize,
[in, out] PDWORD RequiredSize
);
參數
[in] InfSpec
根據 SearchControl 的值,處理或 INF 檔案的檔名。
[in] SearchControl
此參數可以是下列其中一個常數。
INFINFO_INF_SPEC_IS_HINF
InfSpec 是 INF 句柄。 如果一起附加多個 INF 檔案,單一 INF 句柄可能會參考多個 INF 檔案。 如果這樣做,此函式所傳回的結構會包含多個資訊集。
INFINFO_INF_NAME_IS_ABSOLUTE
針對 InfSpec 指定的字串是完整路徑。 InfSpec 上不會執行進一步的處理。
INFINFO_DEFAULT_SEARCH
搜尋針對 InfSpec 指定的 INF 檔案預設位置,這假設為僅限檔名。 默認位置為 %windir%\inf,後面接著 %windir%\system32。
INFINFO_REVERSE_DEFAULT_SEARCH
與INFINFO_DEFAULT_SEARCH相同,但預設位置會以反向順序搜尋。
INFINFO_INF_PATH_LIST_SEARCH
在 DevicePath 值專案下的每個目錄中搜尋 INF:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion
[in, out] ReturnBuffer
如果不是 NULL,則指向這個函式傳回 SP_INF_INFORMATION 結構的緩衝區。
您可以呼叫函式一次以取得所需的緩衝區大小、配置必要的記憶體,然後第二次呼叫函式以擷取數據。 使用這項技術,您可以避免因為緩衝區大小不足而發生錯誤。 如需詳細資訊,請參閱本主題的一節。
[in] ReturnBufferSize
ReturnBuffer 的大小,以位元組為單位。
[in, out] RequiredSize
如果不是 NULL,則指向此函式傳回 ReturnBuffer 所指向之緩衝區所需的大小,以位元組為單位。
如果指定 ReturnBuffer 且所需的大小大於 ReturnBufferSize,則函式會失敗,而且 GetLastError 的呼叫會傳回ERROR_INSUFFICIENT_BUFFER。
傳回值
如果函式成功,則傳回值是非零值。
如果函式失敗,傳回值為 0 (零) 。 若要取得擴充的錯誤資訊,請呼叫 GetLastError。
如果找不到 INF 檔案,函式會傳回 FALSE ,而 對 GetLastError 的後續呼叫會傳回ERROR_FILE_NOT_FOUND。
備註
如果使用 NULL 的 ReturnBuffer 呼叫此函式,而 ReturnBufferSize 為 0 (零) ,則函式會將保留指定數據的緩衝區大小放入 RequiredSize 所指向的變數。 如果函式成功,則傳回值是非零值。 否則,傳回值為 0 (零) ,而呼叫 GetLastError 即可取得擴充錯誤資訊。
注意
setupapi.h 標頭會將 SetupGetInfInformation 定義為別名,根據 UNICODE 預處理器常數的定義,自動選取此函式的 ANSI 或 Unicode 版本。 混合使用編碼中性別名與非編碼中性的程序代碼,可能會導致編譯或運行時間錯誤不符。 如需詳細資訊,請參閱 函式原型的慣例。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows XP [僅限傳統型應用程式] |
最低支援的伺服器 | Windows Server 2003 [僅限傳統型應用程式] |
目標平台 | Windows |
標頭 | setupapi.h |
程式庫 | Setupapi.lib |
Dll | Setupapi.dll |