IoWMIOpenBlock 関数 (wdm.h)

IoWMIOpenBlock ルーチンは、指定された WMI クラスの WMI データ ブロック オブジェクトを開きます。

構文

NTSTATUS IoWMIOpenBlock(
  [in]  LPCGUID Guid,
  [in]  ULONG   DesiredAccess,
  [out] PVOID   *DataBlockObject
);

パラメーター

[in] Guid

WMI クラスの GUID を指定します。

[in] DesiredAccess

データ ブロック オブジェクトに対する必要なアクセス権を指定します。 呼び出し元には、特定の操作を実行するための特定のアクセス権が必要です。

次に、各アクセス権ビットと、それが許可する操作の説明を示します。

WMIGUID_EXECUTE

データ ブロック オブジェクトを使用して、WMI クラス メソッドを実行できます。 このフラグは、データ ブロック オブジェクトで IoWMIExecuteMethod を使用するように設定する必要があります。

WMIGUID_NOTIFICATION

データ ブロック オブジェクトを使用して、イベント通知コールバックを登録できます。 このフラグは 、IoWMISetNotificationCallback を使用するように設定する必要があり、WMI イベント ブロックにのみ使用できます。 このフラグを指定する呼び出し元は、SYNCHRONIZE フラグも指定する必要があります。

WMIGUID_QUERY

データ ブロック オブジェクトは、WMI クラスのプロパティのクエリに使用できます。 データ ブロック オブジェクトで IoWMIQueryXxx ルーチンのいずれかを使用するには、このフラグを設定する必要があります。

WMIGUID_SET

データ ブロック オブジェクトを使用して、WMI クラスのプロパティを設定できます。 データ ブロック オブジェクトで IoWMISetXxx ルーチンのいずれかを使用するには、このフラグを設定する必要があります。

[out] DataBlockObject

ルーチンがデータ ブロック オブジェクトへのポインターを返すメモリ位置へのポインター。

戻り値

成功した場合はSTATUS_SUCCESS、失敗した場合は適切な NTSTATUS エラー コードを返します。

注釈

呼び出し元は IoWMIOpenBlock を使用して、指定された WMI クラス GUID のデータ ブロック オブジェクトを作成します。 その後、呼び出し元はデータ ブロック オブジェクトを使用して、WMI クラスのプロパティの読み取りまたは書き込み、WMI クラス メソッドの実行、WMI イベントのコールバックの登録を行うことができます。

WMI クラスのプロパティを読み書きするには、 IoWMIQueryXxx ルーチンと IoWMISetXxx ルーチンを使用します。 IoWMIExecuteMethod を使用して WMI クラス メソッドを実行し、IoWMISetNotificationCallback を使用して WMI イベント通知コールバックを登録します。

不要になったデータ ブロック オブジェクトを閉じるには、 ObDereferenceObject を使用します。

要件

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

こちらもご覧ください

IoWMIExecuteMethod

IoWMIQueryAllData

IoWMIQueryAllDataMultiple

IoWMIQuerySingleInstance

IoWMIQuerySingleInstanceMultiple

IoWMISetNotificationCallback

IoWMISetSingleInstance

IoWMISetSingleItem

ZwClose