次の方法で共有


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 オペレーティング システムで使用できます。
ターゲット プラットフォーム 万国
ヘッダー wdm.h (Wdm.h、Ntddk.h、Ntifs.h を含む)
ライブラリ NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= APC_LEVEL

関連項目

IRP_MN_QUERY_SINGLE_INSTANCE

IoWMIOpenBlock

IoWMIQuerySingleInstanceMultiple

IoWMISetSingleInstance