MsiEnumPatchesExW 関数 (msi.h)

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

構文

UINT MsiEnumPatchesExW(
  [in, optional]      LPCWSTR           szProductCode,
  [in, optional]      LPCWSTR           szUserSid,
  [in]                DWORD             dwContext,
  [in]                DWORD             dwFilter,
  [in]                DWORD             dwIndex,
  [out, optional]     WCHAR [39]        szPatchCode,
  [out, optional]     WCHAR [39]        szTargetProductCode,
  [out, optional]     MSIINSTALLCONTEXT *pdwTargetProductContext,
  [out, optional]     LPWSTR            szTargetUserSid,
  [in, out, optional] LPDWORD           pcchTargetUserSid
);

パラメーター

[in, optional] szProductCode

パッチを列挙する 製品の ProductCode GUID を指定する null で終わる文字列。 NULL 以外の場合、パッチ列挙は、szUserSiddwContext で指定されたユーザーとコンテキストの下で、この製品のインスタンスに制限されます。 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 つまたは次のパラメーターの組み合わせを指定できます。

Assert 説明
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を返し、終了する NULL 文字を含まない値の TCHAR の数に *pcchTargetUserSid を設定します。

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 バージョンを自動的に選択します。 encoding-neutral エイリアスの使用を encoding-neutral ではないコードと混在すると、コンパイル エラーまたはランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「 関数プロトタイプの規則」を参照してください。

要件

   
サポートされている最小のクライアント 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