EVT_WDF_DEVICE_RELEASE_HARDWARE fonction de rappel (wdfdevice.h)

[S’applique à KMDF et UMDF]

La fonction de rappel d’événement EvtDeviceReleaseHardware d’un pilote effectue les opérations nécessaires lorsqu’un appareil n’est plus accessible.

Syntaxe

EVT_WDF_DEVICE_RELEASE_HARDWARE EvtWdfDeviceReleaseHardware;

NTSTATUS EvtWdfDeviceReleaseHardware(
  [in] WDFDEVICE Device,
  [in] WDFCMRESLIST ResourcesTranslated
)
{...}

Paramètres

[in] Device

Handle d’un objet d’appareil framework.

[in] ResourcesTranslated

Handle d’un objet de liste de ressources qui identifie les ressources matérielles traduites que le gestionnaire de Plug-and-Play a attribuées à l’appareil.

Valeur retournée

Si la fonction de rappel EvtDeviceReleaseHardware ne rencontre aucune erreur, elle doit retourner STATUS_SUCCESS ou une autre valeur de status pour laquelle NT_SUCCESS(status) est égal à TRUE. Sinon, il doit retourner une valeur status pour laquelle NT_SUCCESS(status) est false. Ne retournez pas STATUS_NOT_SUPPORTED.

Remarques

Pour inscrire une fonction de rappel EvtDeviceReleaseHardware , votre pilote doit appeler WdfDeviceInitSetPnpPowerEventCallbacks.

Si un pilote a inscrit une fonction de rappel EvtDeviceReleaseHardware , l’infrastructure l’appelle pendant les transitions suivantes :

  • Rééquilibrage des ressources
  • Suppression ordonnée
  • Suppression surprise

L’infrastructure appelle la fonction de rappel EvtDeviceReleaseHardware une fois que l’infrastructure a cessé d’envoyer des demandes d’E/S à l’appareil, que les interruptions attribuées à l’appareil ont été désactivées et déconnectées, et que l’appareil a été désactivé.

Lorsque l’infrastructure appelle EvtDeviceReleaseHardware, le PDO de l’appareil existe toujours et peut être interrogé pour obtenir des informations sur l’appareil qui sont disponibles dans l’état hors tension, par exemple l’état de configuration PCI.

En outre, les ressources matérielles traduites que l’infrastructure fournit à EvtDeviceReleaseHardware sont toujours affectées à l’appareil. L’objectif principal de cette fonction de rappel est de libérer ces ressources, et en particulier d’annuler le mappage des ressources de mémoire que la fonction de rappel EvtDevicePrepareHardware du pilote a mappées. Le pilote peut également utiliser ce rappel pour effectuer toute autre activité de gestion des pilotes ou des périphériques qui peut être nécessaire à l’état hors tension. En règle générale, toutes les autres opérations d’arrêt matériel doivent avoir lieu dans la fonction de rappel EvtDeviceD0Exit du pilote.

L’infrastructure appelle toujours la fonction de rappel EvtDeviceReleaseHardware du pilote si la fonction de rappel EvtDevicePrepareHardware du pilote a été appelée, même si EvtDevicePrepareHardware a retourné un code d’échec.

Un pilote pour un appareil qui a des appareils enfants peut contrôler l’ordre dans lequel l’infrastructure appelle les fonctions de rappel EvtDeviceReleaseHardware pour l’appareil parent et ses enfants en appelant WdfDeviceInitSetReleaseHardwareOrderOnFailure à partir de sa fonction de rappel EvtDriverDeviceAdd .

Pour plus d’informations sur le moment où l’infrastructure appelle cette fonction de rappel, consultez Scénarios pnP et de gestion de l’alimentation.

Pour plus d’informations sur les ressources matérielles, consultez Ressources matérielles pour les pilotes Framework-Based.

Pour plus d’informations sur les pilotes qui fournissent cette fonction de rappel, consultez Prise en charge du PnP et de la gestion de l’alimentation dans les pilotes de fonction.

Configuration requise

Condition requise Valeur
Plateforme cible Universal
Version KMDF minimale 1.0
Version UMDF minimale 2.0
En-tête wdfdevice.h (include Wdf.h)
IRQL PASSIVE_LEVEL

Voir aussi

EvtDevicePrepareHardware