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 コードを返します。 可能な戻り値は次のとおりです。
リターン コード | 形容 |
---|---|
|
操作は成功しました。 このルーチンは、OutBuffer パラメーターが指すバッファー内の WMI データを返します。 また、このルーチンは、InOutBufferSize パラメーターが指すメモリ位置で返されたデータのサイズをバイト単位で返します。 |
|
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 |
関連項目
IoWMIOpenBlock の
IoWMIQuerySingleInstance の
IoWMISetSingleInstance の