共用方式為


SetupGetInfDriverStoreLocationA 函式 (setupapi.h)

SetupGetInfDriverStoreLocation 函式會在驅動程式存放區中擷取與系統 INF 檔案目錄中指定 INF 檔案相對應之 INF 檔案的完整檔名 (目錄路徑和) 檔名。

語法

WINSETUPAPI BOOL SetupGetInfDriverStoreLocationA(
  [in]            PCSTR                FileName,
  [in, optional]  PSP_ALTPLATFORM_INFO AlternatePlatformInfo,
  [in, optional]  PCSTR                LocaleName,
  [out]           PSTR                 ReturnBuffer,
  [in]            DWORD                ReturnBufferSize,
  [out, optional] PDWORD               RequiredSize
);

參數

[in] FileName

NULL 終止字串的指標,其中包含系統 INF 檔案目錄中 INF 檔案的名稱和選擇性的完整目錄路徑。 或者,此參數是 NULL 終止字串的指標,其中包含驅動程式存放區中 INF 檔案的完整檔名 (目錄路徑和檔名) 。

如需如何指定 INF 檔案的詳細資訊,請參閱下列一節。

[in, optional] AlternatePlatformInfo

保留供系統使用。

[in, optional] LocaleName

保留供系統使用。

[out] ReturnBuffer

緩衝區的指標,函式會傳回 NULL 終止字串,其中包含指定 INF 檔案的完整檔名。 此參數可以設定為 NULL。 支援的路徑大小上限為 MAX_PATH。 如需如何判斷緩衝區所需大小的資訊,請參閱下列一節。

[in] ReturnBufferSize

ReturnBuffer 所提供的緩衝區大小,以字元為單位。

[out, optional] RequiredSize

DWORD 型別變數的指標,可接收 ReturnBuffer 緩衝區的大小,以字元為單位。 此參數是選擇性的,而且可以設定為 NULL

傳回值

如果 SetupGetInfDriverStoreLocation 成功,函式會傳回 TRUE;否則,函式會傳回 FALSE。 若要取得擴充錯誤資訊,請呼叫 GetLastError

如果要求 INF 檔案的完整檔名大小,以字元為單位,包括 null 終止符大於 ReturnBufferSize,則函式將會失敗,而 GetLastError 的呼叫將會傳回ERROR_INSUFFICIENT_BUFFER。

備註

若要判斷在驅動程式存放區中包含指定 INF 檔案的完整檔名所需的傳回緩衝區大小,請呼叫 SetupGetInfDriverStoreLocation 並將 ReturnBuffer 設定為 NULLReturnBufferSize 為零,並提供 RequiredSize SetupGetInfDriverStoreLocation 會傳回 RequiredSize 中所需的緩衝區大小。

當裝置安裝預安裝 驅動程式套件在驅動程式 存放區時,它會建立驅動程式套件 INF 檔案的兩個複本。 裝置安裝會在系統 INF 目錄中安裝一個複本,並指派該 INF 檔案複本為 OEMnnn.inf 格式的唯一已發佈檔名。 裝置安裝會在驅動程式存放區中安裝 INF 檔案的第二個複本,並指派該複本複製原始 INF 檔名。

SetupGetInfDriverStoreLocation 會傳回驅動程式存放區中符合 INF 檔案的完整檔名,如果有的話,由 FileName 提供。 檔名 必須指定系統 INF 目錄中 INF 檔案的檔案名,以及選擇性的目錄路徑。 或者, Filename 必須在驅動程式存放區中指定 INF 檔案的完整檔名。

例如,假設驅動程式套件的 INF 檔案是 Myinf.inf,而且對於此驅動程式套件,裝置安裝會在系統 INF 目錄 C:\Windows\inf 中安裝 INF 檔案 OEM1.inf。進一步假設裝置安裝會在驅動程式存放區中安裝對應的 INF 檔案複製 C:\windows\system32\driverstore\filerepository\myinf_12345678\myinf.inf。 在此情況下,如果 FileName 提供下列其中一個字串,則函式會傳回 C:\windows\system32\driverstore\filerepository\myinf_12345678\myinf.infOEM1.inf、C:\Windows\inf\OEM1.inf 或 C:\windows\system32\driverstore\filerepository\myinf_12345678\myinf.inf。

類別安裝程式共同安裝程式 可以使用 SetupGetInfDriverStoreLocation 來存取驅動程式套件中預安裝於 驅動程式 存放區的檔案。 若要判斷驅動程式存放區中驅動程式套件的路徑,安裝程式會執行下列動作:

  1. 呼叫 SetupDiGetDriverInfoDetail 以擷取驅動程式 的SP_DRVINFO_DETAIL_DATA 結構。 這個結構的 InfFileName 成員包含系統 INF 目錄中驅動程式 INF 檔案的完整檔名。
  2. 呼叫 SetupGetInfDriverStoreLocation ,並提供呼叫 SetupDiGetDriverInfoDetail 所擷取之驅動程式 INF 檔案的完整檔名。 SetupGetInfDriverStoreLocation 會傳回驅動程式存放區中驅動程式 INF 檔案的完整檔名。 INF 檔案完整檔名的目錄路徑部分是 驅動程式套件 檔案的路徑。
注意SetupGetInfDriverStoreLocation 不會處理 FileName 中指定的 INF 檔案內容。 您無法使用此函式來執行驅動程式存放區中 INF 檔案的內容特定搜尋。
 
呼叫 SetupGetInfPublishedName 函式,以擷取系統 INF 檔案目錄中 INF 檔案 的完整檔名,該檔案對應至系統 INF 檔案目錄中的指定 INF 檔案,或在驅動程式存放區中擷取指定的檔案。

注意

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

規格需求

需求
最低支援的用戶端 可在 Windows Vista 和更新版本的 Windows 中使用。
目標平台 桌面
標頭 setupapi.h (包括 Setupapi.h)
程式庫 Setupapi.lib

另請參閱

SP_ALTPLATFORM_INFO

SP_DRVINFO_DETAIL_DATA

SetupDiGetDriverInfoDetail

SetupGetInfPublishedName