IoReportTargetDeviceChange 関数 (wdm.h)
IoReportTargetDeviceChange ルーチンは、デバイスでカスタム イベントが発生したことを PnP マネージャーに通知します。
構文
NTSTATUS IoReportTargetDeviceChange(
[in] PDEVICE_OBJECT PhysicalDeviceObject,
[in] PVOID NotificationStructure
);
パラメーター
[in] PhysicalDeviceObject
報告されるデバイスの PDO へのポインター。
[in] NotificationStructure
カスタム イベントを記述する呼び出し元が指定した TARGET_DEVICE_CUSTOM_NOTIFICATION 構造体へのポインター。 PnP マネージャーは、イベントの通知に登録されたドライバーにこの構造体を送信します。
NotificationStructure をします。FileObject は NULL する必要があります。 NotificationStructure をします。イベント には、イベントのカスタム GUID が含まれている必要があります。 NotificationStructure の他のフィールドは、カスタム イベントに応じて入力する必要があります。
PnP マネージャーは、NotificationStructureに入力します。fileObjectフィールド、レジストリに通知を送信するときに使用します。
戻り値
IoReportTargetDeviceChange 、STATUS_SUCCESSまたは適切なエラー状態を返します。 考えられるエラー状態の値は次のとおりです。
リターン コード | 形容 |
---|---|
|
呼び出し元は、GUID_TARGET_DEVICE_QUERY_REMOVEなどのシステム PnP イベントを指定しました。 このルーチンは、カスタム イベント専用です。 |
備考
IoReportTargetDeviceChange デバイスでカスタム イベントが発生したことを PnP マネージャーに通知した後、PnP マネージャーは、デバイス上の通知に登録されたドライバーにイベントの通知を送信します。 このルーチンを使用して、GUID_TARGET_DEVICE_REMOVE_COMPLETEなどのシステム PnP イベントを報告しないでください。
カスタム イベントが発生したことを PnP マネージャーに通知するために、IoReportTargetDeviceChange カスタム デバイス イベント呼び出しを定義するドライバー。 カスタム通知は、ボリューム ラベルの変更などのイベントに使用できます。
ドライバーは、このルーチンではなく、IoReportTargetDeviceChangeAsynchronous 、このルーチンの非同期形式を呼び出して、デッドロックを防ぐ必要があります。
特定のカーネル モード コンポーネントでは、この同期ルーチンを呼び出すことができます。 たとえば、ファイル システムは IoReportTargetDeviceChange 呼び出して、コンポーネントが排他アクセスのためにボリュームを開こうとしたときに"ボリュームから降りる" カスタム イベントを報告できます。 ファイル システム ボリュームの通知に登録するクライアントは、PnP 通知コールバック ルーチンで排他オープンを要求しないように注意します。
カスタム通知構造体には、独自の GUID を持つドライバー定義イベントが含まれています。 ドライバー ライターは、(Microsoft Windows SDK に含まれている) Uuidgen.exe または Guidgen.exe を使用して GUID を生成できます。
IoReportTargetDeviceChange の呼び出し元は、システム スレッドのコンテキストで IRQL = PASSIVE_LEVELで実行されている必要があります。 IRQL > PASSIVE_LEVEL からのターゲット デバイスの変更を報告するには、IoReportTargetDeviceChangeAsynchronous 呼び出します。
IoReportTargetDeviceChange は Windows 98/Me ではサポートされていません。STATUS_NOT_IMPLEMENTEDを返します。
必要条件
要件 | 価値 |
---|---|
サポートされる最小クライアント | Windows 2000 以降で使用できます。 |
ターゲット プラットフォーム の | 万国 |
ヘッダー | wdm.h (Wdm.h、Ntddk.h、Ntifs.h を含む) |
ライブラリ | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | PASSIVE_LEVEL (「解説」セクションを参照) |
DDI コンプライアンス規則 を する | HwStorPortProhibitedDDIs(storport), PowerIrpDDis(wdm) |
関連項目
IoReportTargetDeviceChangeAsynchronous の