MsiQueryFeatureStateExW 関数 (msi.h)

MsiQueryFeatureStateEx 関数は、製品機能のインストール済み状態を返します。 この関数を使用すると、マシン アカウントの下にインストールされている製品のインスタンスの任意の機能、または現在のユーザー アカウントのコンテキスト、または現在のユーザー以外の任意のユーザー アカウントのユーザーごとの管理コンテキストに対してクエリを実行できます。 現在のユーザー以外のユーザーに対してインストールされている製品の情報を取得するには、ユーザーに管理者権限が必要です。

構文

UINT MsiQueryFeatureStateExW(
  [in]            LPCWSTR           szProductCode,
  [in]            LPCWSTR           szUserSid,
  [in]            MSIINSTALLCONTEXT dwContext,
  [in]            LPCWSTR           szFeature,
  [out, optional] INSTALLSTATE      *pdwState
);

パラメーター

[in] szProductCode

Productcode 目的の機能を含む製品の GUID。

[in] szUserSid

クエリ対象の製品のインスタンスが存在するアカウントのセキュリティ識別子 (SID) を指定します。 dwContextMSIINSTALLCONTEXT_MACHINEされていない場合、null 値は現在のユーザーを指定します。

SID の種類 説明
NULL
NULL は、現在ログオンしているユーザーを示します。
ユーザー SID
システム内の特定のユーザーの列挙を指定します。 ユーザー SID の例として、"S-1-3-64-2415071341-1358098788-3127455600-2561" があります。
 
メモ 特殊な SID 文字列 s-1-5-18 (システム) を使用して、マシンごとにインストールされている製品の機能を列挙することはできません。 dwContextMSIINSTALLCONTEXT_MACHINE場合szUserSid は null である必要があります。
 

[in] dwContext

クエリ対象の製品インスタンスのインストール コンテキスト。

Name 意味
MSIINSTALLCONTEXT_USERMANAGED
製品のユーザーごとのマネージド インスタンスの機能状態を取得します。
MSIINSTALLCONTEXT_USERUNMANAGED
製品のユーザーごとのアンマネージド インスタンスの機能状態を取得します。
メモ 現在のユーザー以外のユーザー アカウントのユーザーごとのアンマネージド コンテキストでインストールされている製品に対してクエリを実行すると、関数は失敗します。
 
MSIINSTALLCONTEXT_MACHINE
製品のマシンごとのインスタンスの機能状態を取得します。

[in] szFeature

クエリを実行する機能を指定します。 フィーチャー テーブル[フィーチャー] 列にある特徴の識別子。

[out, optional] pdwState

指定した製品インスタンスの機能のインストール状態。 このパラメーターは、次または null のいずれかを返すことができます。

説明
INSTALLSTATE_ADVERTISED
この機能はアドバタイズされます。
INSTALLSTATE_LOCAL
機能はローカルにインストールされます。
INSTALLSTATE_SOURCE
機能はソースから実行されるようにインストールされます。

戻り値

MsiQueryFeatureStateEx 関数は、次の値を返します。

説明
ERROR_ACCESS_DENIED
現在のユーザー以外のユーザーに対してインストールされている製品の情報を取得するには、ユーザーに管理者権限が必要です。
ERROR_BAD_CONFIGURATION
構成データが破損しています。
ERROR_INVALID_PARAMETER
無効なパラメーターが関数に渡されました。
ERROR_SUCCESS
関数は正常に終了しました。
ERROR_UNKNOWN_FEATURE
機能 ID では、既知の機能は識別されません。
ERROR_UNKNOWN_PRODUCT
製品コードでは既知の製品が識別されません。
ERROR_FUNCTION_FAILED
予期しない内部エラー。
 

詳細については、「 表示されたエラー メッセージ」を参照してください。

解説

MsiQueryFeatureStateEx 関数は、機能が実際にアクセス可能であることを検証しません。 MsiQueryFeatureStateEx 関数は、機能 ID を検証しません。 ERROR_UNKNOWN_FEATURE は、不明な機能 ID に対して返されます。 現在のユーザー以外のユーザー アカウントのユーザーごとのアンマネージド コンテキストでインストールされている製品に対してクエリを実行すると、関数は失敗します。 この場合、関数は ERROR_UNKNOWN_FEATUREを返すか、製品がアドバタイズされる (インストールされていない) 場合は 、ERROR_UNKNOWN_PRODUCT が返されます。

Note

msi.h ヘッダーは、MSIQueryFeatureStateEx をエイリアスとして定義し、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

関連項目

表示されるエラー メッセージ

Feature テーブル

MsiQueryFeatureState

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

ProductCode

システム状態関数