Partager via


WdfDeviceInitSetReleaseHardwareOrderOnFailure, fonction (wdfdevice.h)

[S’applique à KMDF et UMDF]

La méthode WdfDeviceInitSetReleaseHardwareOrderOnFailure spécifie si l’infrastructure appelle la fonction de rappel EvtDeviceReleaseHardware du pilote immédiatement après la défaillance de l’appareil ou attend que tous les appareils enfants aient été supprimés.

Syntaxe

void WdfDeviceInitSetReleaseHardwareOrderOnFailure(
  [in] PWDFDEVICE_INIT                       DeviceInit,
  [in] WDF_RELEASE_HARDWARE_ORDER_ON_FAILURE ReleaseHardwareOrderOnFailure
);

Paramètres

[in] DeviceInit

Pointeur vers une structure WDFDEVICE_INIT .

[in] ReleaseHardwareOrderOnFailure

Énumérateur de type WDF_RELEASE_HARDWARE_ORDER_ON_FAILURE qui spécifie quand l’infrastructure appelle la fonction de rappel EvtDeviceReleaseHardware du pilote.

Valeur de retour

None

Remarques

En règle générale, l’infrastructure appelle la fonction de rappel EvtDeviceReleaseHardware d’un pilote après avoir appelé la fonction EvtDeviceReleaseHardware pour tous les appareils enfants énumérés par le pilote.

En cas de panne de mise sous tension ou de mise hors tension d’un appareil, toutefois, l’infrastructure peut appeler evtDeviceReleaseHardware du pilote avant d’avoir appelé les fonctions EvtDeviceReleaseHardware pour tous les appareils enfants.

Pour remplacer ce comportement par défaut, un pilote peut appeler WdfDeviceInitSetReleaseHardwareOrderOnFailure pour spécifier que, même dans les scénarios de défaillance d’appareil, l’infrastructure doit toujours attendre d’appeler sa fonction EvtDeviceReleaseHardware jusqu’à ce qu’elle ait appelé les fonctions EvtDeviceReleaseHardware des appareils enfants.

Par exemple, un pilote de bus qui effectue l’accès au matériel pour le compte de ses appareils enfants peut utiliser cette technique pour s’assurer que ses appareils enfants ne demandent pas l’accès au matériel après que l’infrastructure a appelé la fonction de rappel EvtDeviceReleaseHardware du pilote de bus.

Si un pilote appelle WdfDeviceInitSetReleaseHardwareOrderOnFailure, il doit le faire avant d’appeler WdfDeviceCreate. Pour plus d’informations sur l’appel de WdfDeviceCreate, consultez Création d’un objet d’appareil framework.

Exemples

L’exemple de code suivant montre comment un pilote de bus peut demander à l’infrastructure d’attendre d’appeler sa fonction de rappel EvtDeviceReleaseHardware jusqu’à ce que tous ses appareils enfants aient été supprimés.

WdfDeviceInitSetReleaseHardwareOrderOnFailure(
                       DeviceInit,
                       WdfReleaseHardwareOrderOnFailureAfterDescendants
                       );

Configuration requise

Condition requise Valeur
Plateforme cible Universal
Version KMDF minimale 1.11
Version UMDF minimale 2.0
En-tête wdfdevice.h (include Wdf.h)
Bibliothèque Wdf01000.sys (KMDF) ; WUDFx02000.dll (UMDF)
IRQL <= DISPATCH_LEVEL
Règles de conformité DDI DriverCreate(kmdf)

Voir aussi

EvtDeviceReleaseHardware

WDFDEVICE_INIT

WDF_RELEASE_HARDWARE_ORDER_ON_FAILURE