Notes
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
[S’applique à KMDF et UMDF]
La fonction de rappel d’événement evtDriverDeviceAdd evtDriverDeviceAdd effectue des opérations d’initialisation d’appareil lorsque le gestionnaire Plug-and-Play (PnP) signale l’existence d’un appareil.
Syntaxe
EVT_WDF_DRIVER_DEVICE_ADD EvtWdfDriverDeviceAdd;
NTSTATUS EvtWdfDriverDeviceAdd(
[in] WDFDRIVER Driver,
[in, out] PWDFDEVICE_INIT DeviceInit
)
{...}
Paramètres
[in] Driver
Handle vers un objet de pilote d’infrastructure qui représente le pilote.
[in, out] DeviceInit
Pointeur vers une structure de WDFDEVICE_INIT allouée au framework.
Valeur de retour
La fonction de rappelEvtDriverDeviceAdd doit retourner STATUS_SUCCESS si l’opération réussit. Sinon, cette fonction de rappel doit retourner l’une des valeurs d’état d’erreur définies dans Ntstatus.h. Pour plus d’informations, consultez la section Remarques suivante.
Remarques
Chaque pilote basé sur l’infrastructure qui prend en charge les appareils PnP doit fournir la fonction de rappel EvtDriverDeviceAdd. Le pilote doit placer l’adresse de la fonction de rappel dans sa structure de WDF_DRIVER_CONFIG avant d’appeler WdfDriverCreate.
L’infrastructure appelle le EvtDriverDeviceAdd fonction de rappel après qu’un pilote de bus détecte un appareil disposant d’un identificateur matériel (ID) qui correspond à un ID matériel pris en charge par votre pilote. Vous spécifiez les ID matériels pris en charge par votre pilote en fournissant un fichier INF, que le système d’exploitation utilise pour installer les pilotes la première fois que l’un de vos appareils est connecté à l’ordinateur. Pour plus d’informations sur la façon dont le système utilise des fichiers INF et des ID matériels, consultez Comment le programme d’installation sélectionne les pilotes.
La fonction de rappel EvtDriverDeviceAdd d’un pilote effectue généralement au moins certaines des opérations d’initialisation suivantes :
-
Créer un objet d’appareil framework pour représenter l’appareil.
-
créer des files d’attente d’E/S afin que le pilote puisse recevoir des demandes d’E/S.
-
Créer des interfaces d’appareil que les applications utilisent pour communiquer avec l’appareil.
-
Créer des interfaces définies par un pilote que d’autres pilotes peuvent utiliser.
- Initialisez prise en charge de WMI (Windows Management Instrumentation).
-
Créer des objets d’interruption, si le pilote gère les interruptions de périphérique.
-
Activer les transactions d’accès direct à la mémoire (DMA), si le pilote gère les opérations DMA.
Si la fonction de rappel EvtDriverDeviceAdd d’un pilote crée un objet d’appareil, mais ne retourne pas STATUS_SUCCESS, l’infrastructure supprime l’objet d’appareil et ses appareils enfants.
Si la fonction de rappel EvtDriverDeviceAdd d’un pilote de fonction ne retourne pas STATUS_SUCCESS, le gestionnaire d’E/S ne génère pas de pile d’appareils pour l’appareil.
Si la fonction de rappel evtDriverDeviceAdd d’un pilote de filtre ne retourne pas STATUS_SUCCESS, l’infrastructure convertit la valeur de retour en STATUS_SUCCESS et le gestionnaire d’E/S génère la pile des appareils sans le pilote de filtre.
Spécifications
Besoin | Valeur |
---|---|
plateforme cible | Universel |
version minimale de KMDF | 1.0 |
version minimale de UMDF | 2.0 |
En-tête | wdfdriver.h (include Wdf.h) |
IRQL | PASSIVE_LEVEL |