EVT_WDF_DEVICE_PREPARE_HARDWARE fonction de rappel (wdfdevice.h)
[S’applique à KMDF et UMDF]
Le EvtDevicePrepareHardware d’un pilote fonction de rappel d’événement effectue toutes les opérations nécessaires pour rendre un appareil accessible au pilote.
Syntaxe
EVT_WDF_DEVICE_PREPARE_HARDWARE EvtWdfDevicePrepareHardware;
NTSTATUS EvtWdfDevicePrepareHardware(
[in] WDFDEVICE Device,
[in] WDFCMRESLIST ResourcesRaw,
[in] WDFCMRESLIST ResourcesTranslated
)
{...}
Paramètres
[in] Device
Handle vers un objet d’appareil framework.
[in] ResourcesRaw
Handle vers un objet de liste de ressources d’infrastructure qui identifie les ressources matérielles brutes affectées par le gestionnaire Plug-and-Play à l’appareil.
[in] ResourcesTranslated
Handle vers un objet de liste de ressources framework 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 EvtDevicePrepareHardware 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.
Si NT_SUCCESS(status) est égal à faux, l’infrastructure appelle la fonction de rappel EvtDeviceReleaseHardware du pilote fonction de rappel.
Pour plus d’informations sur les valeurs de retour de cette fonction de rappel, consultez Reporting Device Failures.
Remarques
Pour inscrire une fonction de rappel EvtDevicePrepareHardware, un pilote doit appeler WdfDeviceInitSetPnpPowerEventCallbacks.
Si le pilote a inscrit un EvtDevicePrepareHardware fonction de rappel pour un appareil, l’infrastructure appelle la fonction une fois que le gestionnaire Plug-and-Play a affecté des ressources matérielles à l’appareil et après que l’appareil a entré son état D0 non initialisé. (Le gestionnaire Plug-and-Play démarre toujours un appareil parent avant de démarrer les appareils enfants de cet appareil.)
L’infrastructure appelle la fonction de rappel evtDevicePrepareHardware du pilote avant d’appeler la fonction de rappel EvtDeviceD0Entry du pilote fonction de rappel.
La fonction de rappel EvtDevicePrepareHardware accède aux ressources matérielles brutes et traduites de l’appareil à l’aide du ResourcesRaw et ResourcesTranslated gère qu’il reçoit. La fonction de rappel peut appeler WdfCmResourceListGetCount et WdfCmResourceListGetDescriptor pour parcourir les listes de ressources. Cette fonction de rappel ne peut pas modifier les listes de ressources.
Pour plus d’informations sur les listes de ressources et l’ordre dans lequel les ressources apparaissent, consultez ressources matérielles brutes et traduites.
En règle générale, la fonction de rappel EvtDevicePrepareHardware pilote effectue les opérations suivantes, si nécessaire :
- Mappe les adresses de mémoire physique aux adresses virtuelles afin que le pilote puisse accéder à la mémoire affectée à l’appareil
- Détermine le numéro de révision de l’appareil
- Configure des périphériques USB
- Obtient interfaces définies par le pilote d’autres pilotes
En règle générale, toutes les autres opérations d’initialisation matérielle, notamment le chargement du microprogramme, doivent avoir lieu chaque fois que l’appareil entre dans son état de travail (D0) et doit donc avoir lieu dans la fonction de rappel evtDeviceD0Entry du pilote.
Les ResourcesRaw et ResourcesTranslated gèrent que la fonction de rappel EvtDevicePrepareHardware reste valide tant que la fonction de rappel EvtDeviceReleaseHardware du pilote n’est pas retournée.
Pour plus d’informations sur les ressources matérielles, consultez Ressources matérielles pour Framework-Based Pilotes.
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 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 |