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 の種類 | 意味 |
---|---|
|
現在ログオンしているユーザーを指定します。 |
|
システム内の特定のユーザーの列挙。 ユーザー SID の例として、"S-1-3-64-2415071341-1358098788-3127455600-2561" があります。 |
|
システム内のすべてのユーザーの列挙。 |
[in] dwContext
列挙を 1 つまたは複数のコンテキストの組み合わせに制限します。 このパラメーターには、次の値の任意の 1 つまたは組み合わせを指定できます。
[in] dwFilter
列挙のフィルター。 このパラメーターには、次のパラメーターの 1 つまたは組み合わせを指定できます。
フィルター | 意味 |
---|---|
|
列挙には、適用されたパッチが含まれます。 列挙には、置き換えられたパッチや古いパッチは含まれません。 |
|
列挙には、置き換え済みとしてマークされたパッチが含まれています。 |
|
列挙には、古いものとしてマークされている修正プログラムが含まれています。 |
|
列挙には、登録されているが、まだ適用されていないパッチが含まれています。 MsiSourceListAddSourceEx 関数は、新しいパッチを登録できます。
メモ 現在のユーザー以外のユーザーに登録され、ユーザーごとのアンマネージド コンテキストに適用されたパッチは列挙されません。
|
|
列挙には、適用、廃止、置き換え済み、および登録済みのすべてのパッチが含まれます。 |
[in] dwIndex
取得するパッチのインデックス。 このパラメーターは、 MsiEnumPatchesEx 関数の最初の呼び出しでは 0 で、その後の呼び出しではインクリメントする必要があります。 dwIndex パラメーターは、前の呼び出しがERROR_SUCCESS返された場合にのみインクリメントする必要があります。
[out, optional] szPatchCode
列挙されるパッチの GUID を格納する出力バッファー。 バッファーは、GUID を保持するのに十分な大きさにする必要があります。 このパラメーターは、NULL でもかまいません。
[out, optional] szTargetProductCode
このパッチを受け取る 製品の ProductCode GUID を格納する出力バッファー。 バッファーは、GUID を保持するのに十分な大きさにする必要があります。 このパラメーターは、NULL でもかまいません。
[out, optional] pdwTargetProductContext
列挙されるパッチのコンテキストを返します。 出力値は 、MSIINSTALLCONTEXT_USERMANAGED、 MSIINSTALLCONTEXT_USERUNMANAGED、または MSIINSTALLCONTEXT_MACHINEできます。 このパラメーターは、NULL でもかまいません。
[out, optional] szTargetUserSid
このパッチ インスタンスが存在するアカウントの文字列 SID を受け取る出力バッファー。 このバッファーは、マシンごとのコンテキストの空の文字列を返します。
このバッファーは、SID を格納するのに十分な大きさである必要があります。 バッファーが小さすぎる場合、関数は ERROR_MORE_DATA を返し、*pcchTargetUserSid を値の TCHAR の数に設定します。終端の NULL 文字は含まれません。
szTargetUserSid が NULL に設定され、pcchTargetUserSid が有効なポインターに設定されている場合、この関数は ERROR_SUCCESSを返し、*pcchTargetUserSid を終了 NULL 文字を含まない値の TCHAR の数に設定します。 関数を再度呼び出して値を取得し、* pcchTargetUserSid + 1 文字を格納するのに十分な大きさの szTargetUserSid バッファーを使用できます。
szTargetUserSid と pcchTargetUserSid の両方が NULL に設定されている場合、この関数は値が存在する場合ERROR_SUCCESSを返します。値は取得されません。
[in, out, optional] pcchTargetUserSid
szTargetUserSid バッファー内の TCHAR の数を指定する変数へのポインター。 関数が戻るとき、関数が指定したバッファーに値をコピーするかどうかに関係なく、このパラメーターは要求された値のサイズに設定されます。 サイズは、要求された値の TCHAR の数として返されます。終端の null 文字は含まれません。
このパラメーターは、szTargetUserSid も NULL の場合にのみ NULL に設定できます。それ以外の場合、関数はERROR_INVALID_PARAMETERを返します。
戻り値
MsiEnumPatchesEx 関数は、次のいずれかの値を返します。
リターン コード | 説明 |
---|---|
|
この関数は、十分な特権を持つリソースへのアクセスを試みずに失敗します。 |
|
構成データが破損しています。 |
|
無効なパラメーターが関数に渡されます。 |
|
列挙する修正プログラムはこれ以上ありません。 |
|
パッチが正常に列挙されました。 |
|
szProduct が指定した製品は、指定されたコンテキストでコンピューターにインストールされません。 |
|
これは、 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 |