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 以外の場合、パッチ列挙は、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 つまたは次のパラメーターの組み合わせを指定できます。
Assert | 説明 |
---|---|
|
列挙には、適用されたパッチが含まれます。 列挙には、置き換えられたパッチや古い修正プログラムは含まれません。 |
|
列挙には、置き換えられるとマークされている修正プログラムが含まれています。 |
|
列挙には、古いものとしてマークされている修正プログラムが含まれています。 |
|
列挙には、登録されているが、まだ適用されていないパッチが含まれています。 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を返し、終了する NULL 文字を含まない値の TCHAR の数に *pcchTargetUserSid を設定します。
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 バージョンを自動的に選択します。 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 |