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 コードを返します。 可能な戻り値は次のとおりです。
リターン コード | 説明 |
---|---|
|
操作が成功しました。 ルーチンは、 OutBuffer パラメーターが指すバッファー内の WMI データを返します。 また、このルーチンは、 InOutBufferSize パラメーターによって指されるメモリ位置に返されるデータのサイズ (バイト単位) も返します。 |
|
指定した WMI クラスを実装するドライバーはありません。 |
|
ドライバーは、InstanceName パラメーターで指定された値と等しい InstanceName プロパティを持つ WMI クラスの インスタンス を実装しません。 |
|
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 |