Partager via


EVT_WDF_DEVICE_RELEASE_HARDWARE fonction de rappel (wdfdevice.h)

[S’applique à KMDF et UMDF]

La fonction de rappel d’événement EvtDeviceReleaseHardware pilote effectue des 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 vers un objet d’appareil framework.

[in] ResourcesTranslated

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

Valeur de retour

Si la fonction de rappel EvtDeviceReleaseHardware ne rencontre aucune erreur, elle doit retourner STATUS_SUCCESS ou une autre valeur d’état pour laquelle NT_SUCCESS(status) est égal à TRUE. Sinon, il doit retourner une valeur d’état pour laquelle NT_SUCCESS(état) est égal à 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 un EvtDeviceReleaseHardware fonction de rappel, l’infrastructure l’appelle pendant les transitions suivantes :

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

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

Lorsque l’infrastructure appelle le EvtDeviceReleaseHardware, l’objet PDO de l’appareil existe toujours et peut être interrogé pour les informations d’appareil disponibles dans l’état désactivé, 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 pour annuler le mappage des ressources mémoire que le pilote EvtDevicePrepareHardware fonction de rappel mappée. Le pilote peut également utiliser ce rappel pour effectuer toute autre activité de gestion de pilote ou de périphérique qui peut être nécessaire à l’état de mise hors tension. En règle générale, toutes les autres opérations d’arrêt matériel doivent se produire dans la EvtDeviceD0Exit fonction de rappel.

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

Un pilote pour un appareil doté d’appareils enfants peut contrôler l’ordre dans lequel l’infrastructure appelle l'EvtDeviceReleaseHardware fonctions de rappel pour l’appareil parent et ses enfants en appelant WdfDeviceInitSetReleaseHardwareOrderOnFailure à partir de son EvtDriverDeviceAdd fonction de rappel.

Pour plus d’informations sur le moment où l’infrastructure appelle cette fonction de rappel, consultez scénarios PnP et Power Management.

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

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

Exigences

Exigence Valeur
plateforme cible Universel
version minimale de KMDF 1.0
version minimale de UMDF 2.0
d’en-tête wdfdevice.h (include Wdf.h)
IRQL PASSIVE_LEVEL

Voir aussi

EvtDevicePrepareHardware