共用方式為


msiGetPatchInfoExA 函式 (msi.h)

MsiGetPatchInfoEx函式會查詢修補程式套用至產品指定實例的相關資訊。

語法

UINT MsiGetPatchInfoExA(
  [in]            LPCSTR            szPatchCode,
  [in]            LPCSTR            szProductCode,
  [in]            LPCSTR            szUserSid,
  [in]            MSIINSTALLCONTEXT dwContext,
  [in]            LPCSTR            szProperty,
  [out, optional] LPSTR             lpValue,
  [in, out]       LPDWORD           pcchValue
);

參數

[in] szPatchCode

包含修補程式 GUID 的 Null 終止字串。 此參數不可為 Null

[in] szProductCode

以 Null 結尾的字串,其中包含產品實例的 ProductCode GUID。 此參數不可為 Null

[in] szUserSid

以 Null 結尾的字串,指定 (SID 的安全性識別碼) ,在其中查詢修補程式的實例存在。 使用 Null 值可指定目前的使用者。

SID 意義
NULL
指定登入的使用者。
使用者 SID
指定系統中特定使用者識別碼的列舉。 下列範例會識別可能的使用者 SID:「S-1-3-64-2415071341-1358098788-3127455600-2561」。
 
注意 特殊的 SID 字串 「S-1-5-18」 (系統) 無法用來列舉依每部電腦安裝的產品。 如果 dwCoNtext是MSIINSTALLCONTEXT_MACHINEszUserSid 必須是 Null
 

[in] dwContext

將列舉限制為個別使用者 Unmanaged、每一使用者管理或每部電腦內容。 這個參數可以是下列任何一個值。

Context 意義
MSIINSTALLCONTEXT_USERMANAGED
1
針對 szUserSid 所指定的使用者,延伸至所有使用者管理安裝的查詢。
MSIINSTALLCONTEXT_USERUNMANAGED
2
針對 szUserSid 所指定的使用者,延伸至所有使用者非受控安裝的查詢。
MSIINSTALLCONTEXT_MACHINE
4
延伸至所有每部機器安裝的查詢。

[in] szProperty

以 Null 結束的字串,指定要擷取的屬性值。 szProperty參數可以是下列其中一項:

名稱 意義
INSTALLPROPERTY_LOCALPACKAGE
「LocalPackage」
取得產品使用的快取修補程式檔案。
INSTALLPROPERTY_TRANSFORMS
「Transforms」
取得套用至產品的最後一個修補程式安裝修補程式轉換集。 如果使用者未登入,則此值可能無法供每個使用者、非受控應用程式使用。
INSTALLPROPERTY_INSTALLDATE
「InstallDate」
取得這個產品上次收到服務的時間。 每次從產品套用或移除修補程式,或是使用 /v 命令列選項 來修復產品時,都會取代此屬性的值。 如果產品未收到任何修復或修補程式,則此屬性包含此產品安裝在這部電腦上的時間。
INSTALLPROPERTY_UNINSTALLABLE
「Uninstallable」
如果修補程式標示為可能從產品卸載,則傳回 「1」。 在此情況下,如果無法卸載的另一個修補程式需要此修補程式,安裝程式仍然可以封鎖卸載。
INSTALLPROPERTY_PATCHSTATE
「State」
如果此修補程式目前套用至產品,則傳回 「1」。 如果此修補程式被另一個修補程式取代,則傳回 「2」。 如果此修補程式已過時,則傳回 「4」。 這些值會對應至MsiEnumPatchesEx使用的dwFilter參數常數。
INSTALLPROPERTY_DISPLAYNAME
「DisplayName」
取得修補程式的已註冊顯示名稱。 對於不包含 MsiPatchMetadata 資料表中 DisplayName 屬性的修補程式,傳回的顯示名稱是空字串 (「」) 。
INSTALLPROPERTY_MOREINFOURL
「MoreInfoURL」
取得修補程式的已註冊支援資訊 URL。 對於不包含 MsiPatchMetadata 資料表中 MoreInfoURL 屬性的修補程式,傳回的支援資訊 URL 是空字串 (「」「) 。

[out, optional] lpValue

此參數是接收屬性值之緩衝區的指標。 這個緩衝區應該夠大,足以包含資訊。 如果緩衝區太小,函式會 傳回ERROR_MORE_DATA ,並將 *pcchValue 設定為屬性值中的 TCHAR 數目,不包括終止 的 Null 字元。

如果 lpValue 設定為 NullpcchValue 設定為有效的指標,則函式會傳回 ERROR_SUCCESS ,並將 *pcchValue 設定為值中的 TCHAR 數目,不包括終止 的 Null 字元。 然後可以再次呼叫 函式以擷取值, lpValue 緩衝區夠大,足以包含 *pcchValue + 1 個字元。

如果 lpValuepcchValue 都設定為 Null,則函式會在值存在時傳回 ERROR_SUCCESS ,而不擷取值。

[in, out] pcchValue

呼叫 函式時,此參數應該是變數的指標,指定lpValue緩衝區中的TCHAR數目。 當函式傳回時,不論函式是否將值複製到指定的緩衝區,此參數會設定為要求值的大小。 大小會以要求值中的 TCHAR 數目傳回,不包括終止的 Null 字元。

只有當lpValue也是Null時,才能將此參數設定為Null。 否則,函式會傳回 ERROR_INVALID_PARAMETER

傳回值

MsiGetPatchInfoEx函式會傳回下列值。

傳回碼 描述
ERROR_ACCESS_DENIED
函式嘗試存取許可權不足的資源失敗。
ERROR_BAD_CONFIGURATION
設定資料已損毀。
ERROR_FUNCTION_FAILED
函式會失敗,而且在其他錯誤碼中未識別錯誤。
ERROR_INVALID_PARAMETER
不正確參數會傳遞至 函式。
ERROR_MORE_DATA
值不適用於提供的緩衝區。
ERROR_SUCCESS
已成功列舉修補程式。
ERROR_UNKNOWN_PRODUCT
szProduct指定的產品未安裝在電腦上。
ERROR_UNKNOWN_PROPERTY
屬性無法辨識。
ERROR_UNKNOWN_PATCH
無法辨識修補程式。

備註

Windows Installer 2.0: 不支援。 從 Windows Installer 3.0 版開始,即可使用此函式。

使用者可以查詢任何可見產品實例的修補程式資料。 系統管理員群組可以查詢電腦上任何產品實例和任何使用者的修補程式資料。 並非所有的值都保證可在使用者未登入時供每個使用者、非受控應用程式使用。

注意

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

需求

   
最低支援的用戶端 Windows Server 2012、Windows 8、Windows Server 2008 R2 或 Windows 7 上的 Windows Installer 5.0。 Windows Server 2008 或 Windows Vista 上的 Windows Installer 4.0 或 Windows Installer 4.5。 如需 Windows Installer 版本所需的最低 Windows Service Pack 相關資訊,請參閱 Windows Installer Run-Time 需求。
目標平台 Windows
標頭 msi.h
程式庫 Msi.lib
Dll Msi.dll

另請參閱

ProductCode

移除修補程式