英語で読む

次の方法で共有


IoWMIRegistrationControl 関数 (wdm.h)

IoWMIRegistrationControl ルーチンは、指定したデバイス オブジェクトの WMI データ プロバイダーとして呼び出し元を登録または登録解除します。

構文

C++
NTSTATUS IoWMIRegistrationControl(
  [in] PDEVICE_OBJECT DeviceObject,
  [in] ULONG          Action
);

パラメーター

[in] DeviceObject

デバイス オブジェクトへのポインター。 このオブジェクトは、DEVICE_OBJECT システム構造です。

[in] Action

WMI が実行する必要があるアクション。 要求されたアクションは、次のいずれかの値で示されます。

アクション値 意味
WMIREG_ACTION_REGISTER DeviceObjectの WMI プロバイダーとして WMI が呼び出し元を登録する必要があることを指定します。 これにより、WMI は IRP_MN_REGINFO または IRP_MN_REGINFO_EX 要求をドライバーに送信します。
WMIREG_ACTION_DEREGISTER DeviceObjectの WMI プロバイダーの一覧から WMI が呼び出し元を削除することを指定します。
WMIREG_ACTION_REREGISTER WMI でドライバーの登録を解除し、ドライバーを登録 (再登録) する必要があることを指定します。 ドライバーを再登録すると、WMI によってドライバーに IRP_MN_REGINFO または IRP_MN_REGINFO_EX 要求が送信されます。
WMIREG_ACTION_UPDATE_GUIDS WMI がデータを提供する GUID 識別子の新しい一覧をドライバーに再クエリする必要があることを指定します。 これにより、WMI は IRP_MN_REGINFO または IRP_MN_REGINFO_EX 要求をドライバーに送信します。

戻り値

IoWMIRegistrationControl は、次の一覧から状態コードを返します。

リターン コード 形容
STATUS_SUCCESS
WMI がエラーなしで要求されたアクションを完了したことを示します。
STATUS_INVALID_PARAMETER
Actionで指定されたアクションが無効であることを示します。
STATUS_XXX
NTSTATUS 値で指定された理由で要求が失敗したことを示します。 実際の状態リターン コードの詳細については、Ntstatus.h を参照してください。

備考

ドライバーが IoWMIRegistrationControl 呼び出した後、WMI はドライバーに IRP_MN_REGINFO または IRP_MN_REGINFO_EX 要求を送信して、ドライバーが WMI に情報を提供できるようにします。 詳細については、「WMI データ プロバイダーとしての登録」を参照してください。

呼び出し元が アクションのWMIREG_ACTION_DEREGISTERを指定した場合、IoWMIRegistrationControl 、指定されたデバイス オブジェクトに以前に送信されたすべての IRP_MJ_SYSTEM_CONTROL 要求が完了するまで、呼び出し元のスレッドがブロックされます。 このような場合、ドライバーが IRP_MJ_SYSTEM_CONTROL 要求のディスパッチ ルーチン内 IoWMIRegistrationControl を呼び出すと、呼び出し元のスレッドがデッドロックします。

デバイスが突然削除された場合 (突然の削除など)、PnP マネージャーが IRP_MN_SURPRISE_REMOVAL IRP を送信する原因となった場合、ドライバーは IoWMIRegistrationControl 呼び出しを呼び出し、呼び出しの アクション でWMIREG_ACTION_DEREGISTERを指定する必要があります。 IRP_MN_SURPRISE_REMOVAL IRP に応答して Action がWMIREG_ACTION_DEREGISTERに設定された IoWMIRegistrationControl をドライバーが呼び出す場合、ドライバーは、IRP_MN_REMOVE_DEVICE IRP に応答して IoWMIRegistrationControl する同じ呼び出しを行う必要があることに注意してください。

必要条件

要件 価値
サポートされる最小クライアント Windows 2000 以降で使用できます。
ターゲット プラットフォーム 万国
ヘッダー wdm.h (Wdm.h、Ntddk.h、Ntifs.h を含む)
ライブラリ NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL
DDI コンプライアンス規則 する HwStorPortProhibitedDDDIs(storport), IrqlIoPassive5(wdm), LowerDriverReturn(wdm), PowerIrpDDis(wdm)

関連項目

IRP_MN_REGINFO

IRP_MN_REGINFO_EX

IRP_MN_REMOVE_DEVICE

IRP_MN_SURPRISE_REMOVAL