EVT_WDF_DRIVER_DEVICE_ADD fonction de rappel (wdfdriver.h)
[S’applique à KMDF et UMDF]
La fonction de rappel d’événement EvtDriverDeviceAdd d’un pilote effectue des opérations d’initialisation de périphérique lorsque le gestionnaire de 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 par l’infrastructure.
Valeur retournée
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’erreur status définies dans Ntstatus.h. Pour plus d'informations, consultez la section Notes qui suit.
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 WDF_DRIVER_CONFIG avant d’appeler WdfDriverCreate.
L’infrastructure appelle la fonction de rappel EvtDriverDeviceAdd de votre pilote après qu’un pilote de bus détecte un appareil qui a 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 qu’un de vos appareils est connecté à l’ordinateur. Pour plus d’informations sur la façon dont le système utilise les fichiers INF et les 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éez un objet d’appareil framework pour représenter l’appareil.
-
Créez des files d’attente d’E/ S pour que le pilote puisse recevoir des demandes d’E/S.
-
Créez des interfaces d’appareil que les applications utilisent pour communiquer avec l’appareil.
-
Créez des interfaces définies par le pilote que d’autres pilotes peuvent utiliser.
- Initialiser la prise en charge de Windows Management Instrumentation (WMI).
-
Créez des objets d’interruption, si le pilote gère les interruptions de périphérique.
-
Activez 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 de périphérique et ses périphériques enfants.
Si la fonction de rappel EvtDriverDeviceAdd d’un pilote de fonction ne retourne pas STATUS_SUCCESS, le gestionnaire d’E/S ne crée pas de pile de périphériques 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 de périphériques sans le pilote de filtre.
Configuration requise
Condition requise | Valeur |
---|---|
Plateforme cible | Universal |
Version KMDF minimale | 1.0 |
Version UMDF minimale | 2.0 |
En-tête | wdfdriver.h (inclure Wdf.h) |
IRQL | PASSIVE_LEVEL |