REFERENCES OF ステートメント

REFERENCES OF ステートメントは、特定のソース インスタンスを参照するすべての関連付けインスタンスを取得します。 REFERENCES OF ステートメントの構文は、ASSOCIATORS OF ステートメントに似ています。 ただし、エンドポイント インスタンスを取得するのではなく、介入する関連付けインスタンスを取得します。

REFERENCES OF WHERE 句には、次の定義済みキーワードとその値の 1 つ以上を含めることができます。

REFERENCES OF {SourceObject} WHERE 
    ClassDefsOnly
    RequiredQualifier = QualifierName
    ResultClass = ClassName
    Role = PropertyName

ソース オブジェクトを指定するには、SourceObject の有効なオブジェクト パスを使用します。 SELECT ステートメントと同様に、WHERE 句は省略可能であり、クエリをさらに定義するために使用されます。 つまり、次のステートメントは完全に有効です。

REFERENCES OF {Adapter="AHA-294X"}

ClassDefsOnly キーワードは、ステートメントが関連付けクラスの実際のインスタンスではなく、クラス定義オブジェクトの結果セットを返すことを示します。 これらのオブジェクトには、ソース オブジェクトを参照するインスタンスが属するクラスの定義が含まれています。 たとえば、次のステートメントは、AdapterDriver クラスと AdapterProtocol クラスの定義を返します。

REFERENCES OF {Adapter="AHA-294X"} WHERE ClassDefsOnly

RequiredQualifier キーワードは、返される関連付けオブジェクトは指定された修飾子を含まなければならないことを示します。 RequiredQualifier キーワードを使うと、結果セットに関連付けの特定のインスタンスを含めることができます。 たとえば、次のステートメントは、AdapterTag という修飾子を含む関連付けインスタンスを返します。

REFERENCES OF {Adapter="AHA-294X"}  WHERE RequiredQualifier = AdapterTag

ResultClass キーワードは、返される関連付けオブジェクトが、指定したクラスに属しているか、指定したクラスからの派生である必要があることを示します。 たとえば、次のステートメントは、AdapterDriver クラスまたは AdapterDriver のサブクラスの関連付けを返します。

REFERENCES OF {Adapter="AHA-294X"} WHERE ResultClass = AdapterDriver

ClassDefsOnly キーワードと ResultClass キーワードは、同時に指定できません。 これらを一緒に使うと、無効クエリ エラーが発生します。

Role キーワードは、返される関連付けが、ソース オブジェクトが特定のロールを果たす関連付けだけであることを示します。 ロールは、指定されたプロパティ (ref 型の参照プロパティ) によって定義されます。Role キーワードは、特定のオブジェクトがあるクラスでは 1 つのロールを果たし、その他のクラスでは別のロールを果たす場合の関連付け (階層的な関連付けなど) で役立ちます。 Role キーワードを使用すると、たとえば、ソース オブジェクトが親の役割を果たすすべての関連付けを取得できます。 次のステートメントは、ソース オブジェクトを親として参照する parent プロパティを持つ関連付けを取得するための構文を示しています。

REFERENCES OF {Adapter="AHA-294X"} WHERE Role = parent

注意

複雑なクエリで、"And" または "Or" を使って、ASSOCIATORS OF および REFERENCES OF ステートメントのキーワードを区切ることはできません。 さらに、これらのクエリのキーワードで使用できる唯一の有効な演算子は等号です。 たとえば、次のクエリは有効です。

 

"REFERENCES OF {Win32_NetworkAdapter.DeviceID="0"} " +
    "WHERE resultclass = Win32_NetworkAdapterSetting " +
    "requiredQualifier = Dynamic"

注意

次の例は無効です。 最初の例では等号が使われておらず、2 番目の例では AND キーワードが誤って使われています。

 

"REFERENCES OF {Win32_NetworkAdapter.DeviceID="0"} " +
    "WHERE resultclass = Win32_NetworkAdapterSetting " +
    "requiredQualifier <> Dynamic"

"REFERENCES OF {Win32_NetworkAdapter.DeviceID="0"} " +
"WHERE resultclass = Win32_NetworkAdapterSetting " +
"AND requiredQualifier = Dynamic"