共用方式為


SetupGetSourceFileLocationA 函式 (setupapi.h)

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

SetupGetSourceFileLocation函式會擷取 INF 檔案中列出的來源檔案位置。

語法

WINSETUPAPI BOOL SetupGetSourceFileLocationA(
  [in]      HINF        InfHandle,
  [in]      PINFCONTEXT InfContext,
  [in]      PCSTR       FileName,
  [in, out] PUINT       SourceId,
  [in, out] PSTR        ReturnBuffer,
  [out]     DWORD       ReturnBufferSize,
  [in, out] PDWORD      RequiredSize
);

參數

[in] InfHandle

包含 SourceDisksNamesSourceDisksFiles 區段的 INF 檔案控制碼。 例如,如果使用者的系統 (存在平臺特定區段, 例如 SourceDisksNames.x86SourceDisksFiles.x86) ,則會使用平臺特定區段。

[in] InfContext

複製 檔案 區段中要擷取完整來源路徑之行內容的選擇性指標。 如果此參數為Null,則會在InfHandle所指定 INF 檔案的SourceDisksFiles區段中搜尋FileName

[in] FileName

包含檔案名的 Null終止字串選擇性指標, (沒有路徑) 傳回完整來源位置。 此參數可以是 Null,但必須指定 FileNameInfCoNtext

[in, out] SourceId

從 INF 檔案的 SourceDisksNames 區段接收檔案所在媒體來源識別碼的變數指標。

[in, out] ReturnBuffer

要接收相對來源路徑之緩衝區的選擇性指標。 來源路徑不包含檔案名本身,也不會包含磁碟機號/網路共用名。 路徑不會以反斜線 () 開頭或結尾,因此空字串會指定根目錄。 您應該使用 以 Null結尾的字串緩衝區。 以 Null結束的字串不應超過目的地緩衝區的大小。 您可以呼叫函式一次以取得所需的緩衝區大小、配置必要的記憶體,然後再次呼叫函式以擷取資料。 使用這項技術,您可以避免因為緩衝區大小不足而發生錯誤。 請參閱<備註>一節。 此參數可以是 Null

[out] ReturnBufferSize

ReturnBuffer所指向的緩衝區大小,以字元為單位。 這個數位包含 Null 結束字元。

[in, out] RequiredSize

選擇性的指標,這個變數會接收 ReturnBuffer 參數所指向之緩衝區的必要大小,以字元為單位。 這個數位包含 Null 結束字元。 如果所需的大小大於 ReturnBufferSize所指定的值,則函式會失敗,而且 GetLastError 會傳回ERROR_INSUFFICIENT_BUFFER。

傳回值

如果函式成功,則傳回值是非零值。

如果此函式失敗,則傳回值為零。 若要取得擴充的錯誤資訊,請呼叫 GetLastError

備註

如果使用NullReturnBuffer 和 Zero 的 ReturnBufferSize呼叫此函式,此函式會將所需的緩衝區大小放入RequiredSize所指向的變數中。 如果函式成功,則傳回值是非零值。 否則,傳回值為零,而且呼叫 GetLastError即可取得擴充錯誤資訊。

注意

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

需求

   
最低支援的用戶端 Windows XP [僅限傳統型應用程式]
最低支援的伺服器 Windows Server 2003 [僅限桌面應用程式]
目標平台 Windows
標頭 setupapi.h
程式庫 Setupapi.lib
Dll Setupapi.dll

請參閱

函式

概觀

SetupGetSourceFileSize

SetupGetSourceInfo