IoWMIRegistrationControl 関数 (wdm.h)
IoWMIRegistrationControl ルーチンは、指定されたデバイス オブジェクトの WMI データ プロバイダーとして呼び出し元を登録または登録解除します。
構文
NTSTATUS IoWMIRegistrationControl(
[in] PDEVICE_OBJECT DeviceObject,
[in] ULONG Action
);
パラメーター
[in] DeviceObject
デバイス オブジェクトへのポインター。 このオブジェクトは 、DEVICE_OBJECT システム構造です。
[in] Action
WMI が実行する必要があるアクション。 要求されたアクションは、次のいずれかの値で示されます。
アクション値 | 意味 |
---|---|
WMIREG_ACTION_REGISTER | WMI が DeviceObject の WMI プロバイダーとして呼び出し元を登録する必要があることを指定します。 これにより、WMI は ドライバーにIRP_MN_REGINFO または IRP_MN_REGINFO_EX 要求を送信します。 |
WMIREG_ACTION_DEREGISTER | WMI が DeviceObject の 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 は 、次の一覧から状態コードを返します。
リターン コード | 説明 |
---|---|
|
WMI がエラーなしで要求されたアクションを完了したことを示します。 |
|
[アクション] で指定されたアクションが無効であることを示します。 |
|
NTSTATUS 値で指定された理由で要求が失敗したことを示します。 実際の状態のリターン コードの詳細については、Ntstatus.h を参照してください。 |
注釈
ドライバーが IoWMIRegistrationControl を呼び出した後、WMI はドライバーに IRP_MN_REGINFO または IRP_MN_REGINFO_EX 要求を送信して、ドライバーが WMI に情報を提供できるようにします。 詳細については、「 WMI データ プロバイダーとしての登録」を参照してください。
呼び出し元が Action のWMIREG_ACTION_DEREGISTERを指定した場合、 IoWMIRegistrationControl は、指定されたデバイス オブジェクトに以前に送信されたすべての IRP_MJ_SYSTEM_CONTROL 要求が完了するまで、呼び出し元のスレッドをブロックします。 このような場合、ドライバーがIRP_MJ_SYSTEM_CONTROL要求のディスパッチ ルーチン内で IoWMIRegistrationControl を呼び出すと、呼び出し元のスレッドはデッドロックします。
デバイスが突然削除された場合 (突然の削除など)、PnP マネージャーが IRP_MN_SURPRISE_REMOVAL IRP を送信する原因となった場合、ドライバーは IoWMIRegistrationControl を呼び出し、呼び出しで アクション でWMIREG_ACTION_DEREGISTERを指定する必要があります。 ドライバーが IoWMIRegistrationControl を呼び出し、 アクション が IRP_MN_SURPRISE_REMOVAL IRP に応答してWMIREG_ACTION_DEREGISTERに設定されている場合、ドライバーは、 IRP_MN_REMOVE_DEVICE IRP に応答して IoWMIRegistrationControl に対して同じ呼び出 しを行 う必要があります。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 2000 以降で使用できます。 |
対象プラットフォーム | ユニバーサル |
Header | wdm.h (Wdm.h、Ntddk.h、Ntifs.h を含む) |
Library | NtosKrnl.lib |
[DLL] | NtosKrnl.exe |
IRQL | PASSIVE_LEVEL |
DDI コンプライアンス規則 | HwStorPortProhibitedDDIs(storport), IrqlIoPassive5(wdm), LowerDriverReturn(wdm), PowerIrpDDis(wdm) |