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) |