次の方法で共有


IoWMIQuerySingleInstance 関数 (wdm.h)

IoWMIQuerySingleInstance ルーチンは、WMI データ ブロックの指定されたインスタンスを返します。

構文

NTSTATUS IoWMIQuerySingleInstance(
  [in]            PVOID           DataBlockObject,
  [in]            PUNICODE_STRING InstanceName,
  [in, out]       PULONG          InOutBufferSize,
  [out, optional] PVOID           OutBuffer
);

パラメーター

[in] DataBlockObject

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

[in] InstanceName

データ ブロックのインスタンスの名前を指定します。 この値は、 ブロックの InstanceName プロパティの値に対応します。

[in, out] InOutBufferSize

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

[out, optional] OutBuffer

ルーチンが WMI データを返すバッファーへのポインター。 ルーチンは、可変サイズのWNODE_SINGLE_INSTANCE構造体 返します。 OutBuffer は 、非ページ プールから割り当てられたバッファーを指す必要があります。

戻り値

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

リターン コード 説明
STATUS_SUCCESS
操作が成功しました。 ルーチンは、 OutBuffer パラメーターが指すバッファー内の WMI データを返します。 また、このルーチンは、 InOutBufferSize パラメーターによって指されるメモリ位置に返されるデータのサイズ (バイト単位) も返します。
STATUS_WMI_GUID_NOT_FOUND
指定した WMI クラスを実装するドライバーはありません。
STATUS_WMI_INSTANCE_NOT_FOUND
ドライバーは、InstanceName パラメーターで指定された値と等しい InstanceName プロパティを持つ WMI クラスの インスタンス を実装しません。
STATUS_BUFFER_TOO_SMALL
OutBuffer パラメーターで呼び出し元によって渡されるバッファーが小さすぎます。 ルーチンは、 InOutBufferSize パラメーターが指すメモリ位置に必要なバッファー サイズを返します。

注釈

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

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

要件

要件
サポートされている最小のクライアント Windows XP 以降のバージョンの Windows オペレーティング システムで使用できます。
対象プラットフォーム ユニバーサル
Header wdm.h (Wdm.h、Ntddk.h、Ntifs.h を含む)
Library NtosKrnl.lib
[DLL] NtosKrnl.exe
IRQL <= APC_LEVEL

こちらもご覧ください

IRP_MN_QUERY_SINGLE_INSTANCE

IoWMIOpenBlock

IoWMIQuerySingleInstanceMultiple

IoWMISetSingleInstance