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