EVT_WDF_DEVICE_RELEASE_HARDWARE コールバック関数 (wdfdevice.h)
[KMDF と UMDF に適用]
ドライバーの EvtDeviceReleaseHardware イベント コールバック関数は、デバイスにアクセスできなくなったときに必要な操作を実行します。
構文
EVT_WDF_DEVICE_RELEASE_HARDWARE EvtWdfDeviceReleaseHardware;
NTSTATUS EvtWdfDeviceReleaseHardware(
[in] WDFDEVICE Device,
[in] WDFCMRESLIST ResourcesTranslated
)
{...}
パラメーター
[in] Device
フレームワーク デバイス オブジェクトへのハンドル。
[in] ResourcesTranslated
プラグ アンド プレイ マネージャーがデバイスに割り当てた、変換されたハードウェア リソースを識別するリソース リスト オブジェクトのハンドル。
戻り値
EvtDeviceReleaseHardware コールバック関数でエラーが発生しない場合は、NT_SUCCESS(status) が TRUE であるSTATUS_SUCCESSまたは別の状態値を返す必要があります。 それ以外の場合は、NT_SUCCESS(status) が FALSE である状態値を返す必要があります。 STATUS_NOT_SUPPORTEDを返さないでください。
注釈
EvtDeviceReleaseHardware コールバック関数を登録するには、ドライバーで WdfDeviceInitSetPnpPowerEventCallbacks を呼び出す必要があります。
ドライバーが EvtDeviceReleaseHardware コールバック関数を登録している場合、フレームワークは次の遷移中にそれを呼び出します。
- リソースの再調整
- Orderly の削除
- 驚きの削除
フレームワークは、フレームワークがデバイスへの I/O 要求の送信を停止し、デバイスに割り当てられた割り込みが無効になり、切断され、デバイスがオフになった後に、 EvtDeviceReleaseHardware コールバック関数を呼び出します。
フレームワークが EvtDeviceReleaseHardware を呼び出すと、デバイスの PDO は引き続き存在し、電源オフ状態 (PCI 構成状態など) で使用可能なデバイス情報を照会できます。
さらに、フレームワークが EvtDeviceReleaseHardware に提供する変換されたハードウェア リソースは、引き続きデバイスに割り当てられます。 このコールバック関数の主な目的は、これらのリソースを解放し、特にドライバーの EvtDevicePrepareHardware コールバック関数がマップされたメモリ リソースのマップを解除することです。 ドライバーは、このコールバックを使用して、電源を切った状態で必要になる可能性がある他のドライバーまたはデバイス管理アクティビティを実行することもできます。 通常、他のすべてのハードウェア シャットダウン操作は、ドライバーの EvtDeviceD0Exit コールバック関数で行う必要があります。
EvtDevicePrepareHardware がエラー コードを返した場合でも、ドライバーの EvtDevicePrepareHardware コールバック関数が呼び出された場合、フレームワークは常にドライバーの EvtDeviceReleaseHardware コールバック関数を呼び出します。
子デバイスを持つデバイスのドライバーは、フレームワークが EvtDriverDeviceAdd コールバック関数内から WdfDeviceInitSetReleaseHardwareOrderOnFailure を呼び出すことによって、親デバイスとその子の EvtDeviceReleaseHardware コールバック関数を呼び出す順序を制御できます。
フレームワークがこのコールバック関数を呼び出すタイミングの詳細については、「 PnP と Power Management のシナリオ」を参照してください。
ハードウェア リソースの詳細については、「 Framework-Based ドライバーのハードウェア リソース」を参照してください。
このコールバック関数を提供するドライバーの詳細については、「Function Drivers での PnP と Power Management のサポート」を参照してください。
要件
要件 | 値 |
---|---|
対象プラットフォーム | ユニバーサル |
最小 KMDF バージョン | 1.0 |
最小 UMDF バージョン | 2.0 |
Header | wdfdevice.h (Wdf.h を含む) |
IRQL | PASSIVE_LEVEL |