次の方法で共有


IoWMIQuerySingleInstanceMultiple 関数 (wdm.h)

IoWMIQuerySingleInstanceMultiple ルーチンは、指定したインスタンス名を持つ指定した WMI クラスを実装するすべての WMI データ ブロック インスタンスを返します。

構文

NTSTATUS IoWMIQuerySingleInstanceMultiple(
  [in]            PVOID           *DataBlockObjectList,
  [in]            PUNICODE_STRING InstanceNames,
  [in]            ULONG           ObjectCount,
  [in, out]       PULONG          InOutBufferSize,
  [out, optional] PVOID           OutBuffer
);

パラメーター

[in] DataBlockObjectList

WMI データ ブロック オブジェクトのポインターの配列へのポインター。 呼び出し元は、IoWMIOpenBlock ルーチンを使用して、各 WMI クラスのデータ ブロック オブジェクトを開きます。 各オブジェクトは、WMIGUID_QUERYアクセス権で開く必要があります。

[in] InstanceNames

インスタンス名を含む UNICODE_STRING 構造体の配列へのポインター。 配列内の n番目のインスタンス名は、DataBlockObjectList パラメーターによって指定された、n 番目の WMI クラスの InstanceName プロパティの値対応します。

[in] ObjectCount

DataBlockObjectList および InstanceNames パラメーターで渡される配列内のエントリの数を指定します。

[in, out] InOutBufferSize

OutBuffer パラメーターで渡されるバッファーのサイズを指定するメモリ位置へのポインター。 ルーチンが成功した場合は、メモリの場所を更新して、OutBuffer に実際に格納されているバイト数指定します。 ルーチンがSTATUS_BUFFER_TOO_SMALLで失敗した場合、データを返すために必要なバイト数が返されます。

[out, optional] OutBuffer

ルーチンが WMI データを返すバッファーへのポインター。 このルーチンは、データ ブロック インスタンスごとに 1 つずつ、可変サイズの WNODE_SINGLE_INSTANCE 構造体のシーケンスを返します。 各 WNODE_SINGLE_INSTANCE 構造体の WnodeHeader.Linkage メンバーには、現在の WNODE_SINGLE_INSTANCE の先頭から次の WNODE_SINGLE_INSTANCEの先頭までのオフセットが含まれます。 チェーンの最後のブロックは、WnodeHeader.Linkage 0 に設定されています。 各個別のデータ ブロック インスタンスは、一致する単一の WMI クラスとインスタンス名に対応します。 OutBuffer は、非ページ プールから割り当てられたバッファーを指している必要があります。

戻り値

このルーチンは NTSTATUS コードを返します。 可能な戻り値は次のとおりです。

リターン コード 形容
STATUS_SUCCESS
操作は成功しました。 このルーチンは、OutBuffer パラメーターが指すバッファー内の WMI データを返します。 また、このルーチンは、InOutBufferSize パラメーターが指すメモリ位置で返されたデータのサイズをバイト単位で返します。
STATUS_BUFFER_TOO_SMALL
OutBuffer パラメーターで呼び出し元によって渡されるバッファーが小さすぎます。 このルーチンは、InOutBufferSize パラメーターが指すメモリ位置に必要なバッファー サイズを返します。

備考

IoWMIQuerySingleInstanceMultiple は、指定された WMI クラスとインスタンス名をサポートする可能性があるドライバーを決定し、そのような各ドライバーに IRP_MN_QUERY_SINGLE_INSTANCE 要求を発行します。 InstanceName プロパティと一致するデータ ブロック インスタンス エクスポートする各ドライバーは、適切なデータを返します。

指定した WMI クラスとインスタンス名を実装するドライバーがない場合、ルーチンはSTATUS_SUCCESSを返します。 また、InOutBufferSize パラメーターが指すメモリ位置に 0 の値を返します。

単一の WMI クラスとインスタンス名を照会するには、IoWMIQuerySingleInstance ルーチンを使用します。 ドライバーは、IoWMISetSingleInstance ルーチンを使用して、クラス インスタンスを更新できます。

必要条件

要件 価値
サポートされる最小クライアント Windows XP 以降のバージョンの Windows オペレーティング システムで使用できます。
ターゲット プラットフォーム 万国
ヘッダー wdm.h (Wdm.h、Ntddk.h、Ntifs.h を含む)
ライブラリ NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= APC_LEVEL

関連項目

IRP_MN_QUERY_SINGLE_INSTANCE

IoWMIOpenBlock

IoWMIQuerySingleInstance

IoWMISetSingleInstance

UNICODE_STRING