Partager via


WdfDeviceInitSetReleaseHardwareOrderOnFailure, fonction (wdfdevice.h)

[S’applique à KMDF et UMDF]

La méthode WdfDeviceInitSetReleaseHardwareOrderOnFailure spécifie si l’infrastructure appelle l’infrastructure EvtDeviceReleaseHardware fonction de rappel immédiatement après l’échec 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 WDF_RELEASE_HARDWARE_ORDER_ON_FAILURE-typé qui spécifie quand l’infrastructure appelle le EvtDeviceReleaseHardware du pilote fonction de rappel.

Valeur de retour

Aucun

Remarques

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

En cas de panne d’alimentation ou de mise hors tension de l’appareil, toutefois, l’infrastructure peut appeler le EvtDeviceReleaseHardware du pilote avant d’appeler le EvtDeviceReleaseHardware fonctions 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 d’échec 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 un accès 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 une fois que l’infrastructure a appelé le EvtDeviceReleaseHardware fonction de rappel.

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

Exemples

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

WdfDeviceInitSetReleaseHardwareOrderOnFailure(
                       DeviceInit,
                       WdfReleaseHardwareOrderOnFailureAfterDescendants
                       );

Exigences

Exigence Valeur
plateforme cible Universel
version minimale de KMDF 1.11
version minimale de UMDF 2.0
d’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