次の方法で共有


MsiEnumPatchesExA 関数 (msi.h)

MsiEnumPatchesEx 関数は、特定のコンテキストまたはすべてのコンテキストのすべてのパッチを列挙します。 製品に既に適用されているパッチが列挙されます。 登録されているが、まだ製品に適用されていないパッチも列挙されます。

構文

UINT MsiEnumPatchesExA(
  [in, optional]      LPCSTR            szProductCode,
  [in, optional]      LPCSTR            szUserSid,
  [in]                DWORD             dwContext,
  [in]                DWORD             dwFilter,
  [in]                DWORD             dwIndex,
  [out, optional]     CHAR [39]         szPatchCode,
  [out, optional]     CHAR [39]         szTargetProductCode,
  [out, optional]     MSIINSTALLCONTEXT *pdwTargetProductContext,
  [out, optional]     LPSTR             szTargetUserSid,
  [in, out, optional] LPDWORD           pcchTargetUserSid
);

パラメーター

[in, optional] szProductCode

パッチが列挙される 製品の ProductCode GUID を指定する null で終わる文字列。 NULL 以外の場合、パッチ列挙は、szUserSid および dwContext で指定されたユーザーとコンテキストの下で、この製品のインスタンスに制限されます。 NULL の場合、指定したコンテキストに基づくすべての製品のパッチが列挙されます。

[in, optional] szUserSid

列挙体のコンテキストを制限するセキュリティ識別子 (SID) を指定する null で終わる文字列。 特殊な SID 文字列 "S-1-1-0" (Everyone) は、システム内のすべてのユーザーの列挙を指定します。 "S-1-1-0" 以外の SID 値はユーザー SID と見なされ、そのユーザーに列挙が制限されます。 現在のユーザー以外のユーザーを列挙する場合、Windows インストーラー バージョン 3.0 未満のバージョンを使用してユーザーごとのアンマネージド コンテキストで適用されたパッチは列挙されません。 このパラメーターを NULL に設定して、現在のユーザーを指定できます。

SID の種類 意味
NULL
現在ログオンしているユーザーを指定します。
ユーザー SID
システム内の特定のユーザーの列挙。 ユーザー SID の例として、"S-1-3-64-2415071341-1358098788-3127455600-2561" があります。
s-1-1-0
システム内のすべてのユーザーの列挙。
 
メモ 特殊な SID 文字列 "S-1-5-18" (システム) を使用して、マシンごとにインストールされている製品またはパッチを列挙することはできません。 SID 値を "S-1-5-18" に設定すると 、ERROR_INVALID_PARAMETERが返されます。 dwContextMSIINSTALLCONTEXT_MACHINE のみに設定されている場合、szUserSidNULL である必要があります。
 

[in] dwContext

列挙を 1 つまたは複数のコンテキストの組み合わせに制限します。 このパラメーターには、次の値の任意の 1 つまたは組み合わせを指定できます。

Context 意味
MSIINSTALLCONTEXT_USERMANAGED
szUserSid が指定するユーザーのすべてのユーザー管理インストールに拡張される列挙。 無効な SID はアイテムを返しません。
MSIINSTALLCONTEXT_USERUNMANAGED
このコンテキストでは、Windows インストーラー バージョン 3.0 でインストールされているパッチのみが、現在のユーザーではないユーザーに対して列挙されます。 現在のユーザーの場合、関数はインストールされているすべてのパッチと新しいパッチを列挙します。 szUserSid の無効な SID は、項目を返しません。
MSIINSTALLCONTEXT_MACHINE
すべてのコンピューターごとのインストールに拡張される列挙。 dwContextMSIINSTALLCONTEXT_MACHINEのみに設定されている場合、szUserSid パラメーターは NULL である必要があります。

[in] dwFilter

列挙のフィルター。 このパラメーターには、次のパラメーターの 1 つまたは組み合わせを指定できます。

フィルター 意味
MSIPATCHSTATE_APPLIED
1
列挙には、適用されたパッチが含まれます。 列挙には、置き換えられたパッチや古いパッチは含まれません。
MSIPATCHSTATE_SUPERSEDED
2
列挙には、置き換え済みとしてマークされたパッチが含まれています。
MSIPATCHSTATE_OBSOLETED
4
列挙には、古いものとしてマークされている修正プログラムが含まれています。
MSIPATCHSTATE_REGISTERED
8
列挙には、登録されているが、まだ適用されていないパッチが含まれています。 MsiSourceListAddSourceEx 関数は、新しいパッチを登録できます。
メモ 現在のユーザー以外のユーザーに登録され、ユーザーごとのアンマネージド コンテキストに適用されたパッチは列挙されません。
 
MSIPATCHSTATE_ALL
15
列挙には、適用、廃止、置き換え済み、および登録済みのすべてのパッチが含まれます。

[in] dwIndex

取得するパッチのインデックス。 このパラメーターは、 MsiEnumPatchesEx 関数の最初の呼び出しでは 0 で、その後の呼び出しではインクリメントする必要があります。 dwIndex パラメーターは、前の呼び出しがERROR_SUCCESS返された場合にのみインクリメントする必要があります。

[out, optional] szPatchCode

列挙されるパッチの GUID を格納する出力バッファー。 バッファーは、GUID を保持するのに十分な大きさにする必要があります。 このパラメーターは、NULL でもかまいません。

[out, optional] szTargetProductCode

このパッチを受け取る 製品の ProductCode GUID を格納する出力バッファー。 バッファーは、GUID を保持するのに十分な大きさにする必要があります。 このパラメーターは、NULL でもかまいません。

[out, optional] pdwTargetProductContext

列挙されるパッチのコンテキストを返します。 出力値は 、MSIINSTALLCONTEXT_USERMANAGEDMSIINSTALLCONTEXT_USERUNMANAGED、または MSIINSTALLCONTEXT_MACHINEできます。 このパラメーターは、NULL でもかまいません。

[out, optional] szTargetUserSid

このパッチ インスタンスが存在するアカウントの文字列 SID を受け取る出力バッファー。 このバッファーは、マシンごとのコンテキストの空の文字列を返します。

このバッファーは、SID を格納するのに十分な大きさである必要があります。 バッファーが小さすぎる場合、関数は ERROR_MORE_DATA を返し、*pcchTargetUserSid を値の TCHAR の数に設定します。終端の NULL 文字は含まれません。

szTargetUserSidNULL に設定され、pcchTargetUserSid が有効なポインターに設定されている場合、この関数は ERROR_SUCCESSを返し、*pcchTargetUserSid を終了 NULL 文字を含まない値の TCHAR の数に設定します。 関数を再度呼び出して値を取得し、* pcchTargetUserSid + 1 文字を格納するのに十分な大きさの szTargetUserSid バッファーを使用できます。

szTargetUserSidpcchTargetUserSid の両方が NULL に設定されている場合、この関数は値が存在する場合ERROR_SUCCESSを返します。値は取得されません。

[in, out, optional] pcchTargetUserSid

szTargetUserSid バッファー内の TCHAR の数を指定する変数へのポインター。 関数が戻るとき、関数が指定したバッファーに値をコピーするかどうかに関係なく、このパラメーターは要求された値のサイズに設定されます。 サイズは、要求された値の TCHAR の数として返されます。終端の null 文字は含まれません。

このパラメーターは、szTargetUserSidNULL の場合にのみ NULL に設定できます。それ以外の場合、関数はERROR_INVALID_PARAMETERを返します。

戻り値

MsiEnumPatchesEx 関数は、次のいずれかの値を返します。

リターン コード 説明
ERROR_ACCESS_DENIED
この関数は、十分な特権を持つリソースへのアクセスを試みずに失敗します。
ERROR_BAD_CONFIGURATION
構成データが破損しています。
ERROR_INVALID_PARAMETER
無効なパラメーターが関数に渡されます。
ERROR_NO_MORE_ITEMS
列挙する修正プログラムはこれ以上ありません。
ERROR_SUCCESS
パッチが正常に列挙されました。
ERROR_UNKNOWN_PRODUCT
szProduct が指定した製品は、指定されたコンテキストでコンピューターにインストールされません。
ERROR_MORE_DATA
これは、 pcchTargetUserSid が SID のコピーに必要なバッファー サイズより小さいバッファー サイズを指している場合に返されます。 この場合、ユーザーはバッファーを修正し、同じインデックス値に対して MsiEnumPatchesEx を再度呼び出すことができます。

注釈

管理者以外は、可視性内でのみパッチを列挙できます。 管理者は、他のユーザー コンテキストの修正プログラムを列挙できます。

注意

msi.h ヘッダーは、MSIEnumPatchesEx をエイリアスとして定義し、UNICODE プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択します。 エンコードに依存しないエイリアスをエンコードニュートラルでないコードと組み合わせて使用すると、コンパイルまたはランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「 関数プロトタイプの規則」を参照してください。

要件

要件
サポートされている最小のクライアント Windows Server 2012、Windows 8、Windows Server 2008 R2、または Windows 7 の Windows インストーラー 5.0。 Windows Server 2008 または Windows Vista の Windows インストーラー 4.0 または Windows インストーラー 4.5。 Windows インストーラーのバージョンで必要な最小 Windows サービス パックに関する情報については、Windows インストーラーの実行時の要件に関する記事を参照してください。
対象プラットフォーム Windows
ヘッダー msi.h
Library Msi.lib
[DLL] Msi.dll

こちらもご覧ください

インストール コンテキスト

MsiSourceListAddSourceEx

Windows インストーラー 2.0 以前ではサポートされていません

ProductCode