Partager via


EVT_WDF_CHILD_LIST_DEVICE_REENUMERATED fonction de rappel (wdfchildlist.h)

[S’applique à KMDF uniquement]

La fonction de rappel d’événement EvtChildListDeviceReenumerated d’un pilote permet au pilote d’approuver ou d’annuler une nouvelle énumération d’un appareil spécifié.

Syntaxe

EVT_WDF_CHILD_LIST_DEVICE_REENUMERATED EvtWdfChildListDeviceReenumerated;

BOOLEAN EvtWdfChildListDeviceReenumerated(
  [in]  WDFCHILDLIST ChildList,
  [in]  WDFDEVICE OldDevice,
  [in]  PWDF_CHILD_ADDRESS_DESCRIPTION_HEADER OldAddressDescription,
  [out] PWDF_CHILD_ADDRESS_DESCRIPTION_HEADER NewAddressDescription
)
{...}

Paramètres

[in] ChildList

Handle pour un objet de liste enfant du framework.

[in] OldDevice

Handle pour un objet d’appareil d’infrastructure.

[in] OldAddressDescription

Pointeur facultatif vers une structure WDF_CHILD_ADDRESS_DESCRIPTION_HEADER qui identifie une description d’adresse enfant, ou NULL. Si elle est fournie, cette structure contient des informations d’adresse pertinentes avant la réinumation de l’appareil.

[out] NewAddressDescription

Pointeur facultatif vers une structure WDF_CHILD_ADDRESS_DESCRIPTION_HEADER qui identifie une description d’adresse enfant, ou NULL. Si elle est fournie, la fonction de rappel remplit cette structure avec de nouvelles informations d’adresse sur l’appareil.

Valeur retournée

La fonction de rappel EvtChildListDeviceReenumerated retourne TRUE pour approuver l’énumération ou FALSE pour l’annuler.

Remarques

Si un pilote de bus utilise une énumération dynamique, il peut inscrire une fonction de rappel EvtChildListDeviceReenumerated en appelant WdfFdoInitSetDefaultChildListConfig ou WdfChildListCreate.

Les pilotes de bus basés sur l’infrastructure peuvent recevoir une demande d’un pilote de fonction pour énumérer un appareil enfant particulier. Pour plus d’informations sur ces demandes, consultez Gestion des demandes d’énumération.

La fonction de rappel EvtChildListDeviceReenumerated du pilote de bus permet au pilote d’approuver ou d’annuler l’énumération. Le paramètre OldDevice identifie l’appareil et le paramètre ChildList identifie la liste enfant dont l’appareil est membre. Si la fonction de rappel retourne TRUE pour approuver l’énumération, ou si la fonction de rappel n’existe pas, l’infrastructure effectue les opérations suivantes :

  1. Supprime l’objet d’appareil framework de l’appareil (qui est identifié par OldDevice), mais conserve la description d’identification de l’appareil.
  2. Appelle la fonction de rappel EvtChildListCreateDevice du pilote, en passant la description d’identification enregistrée, afin que la fonction de rappel puisse appeler WdfDeviceCreate pour créer un objet d’appareil d’infrastructure.
Si le pilote de bus utilise des descriptions d’adresses, la fonction de rappel EvtChildListDeviceReenumerated reçoit des pointeurs vers deux descriptions d’adresses. L’un pointe vers la description d’adresse associée à l’ancien objet d’appareil. L’autre pointe vers une description d’adresse que la fonction de rappel doit remplir avec des informations décrivant l’emplacement actuel de l’appareil.

Pour plus d’informations sur l’énumération dynamique, consultez Énumération des appareils sur un bus.

Configuration requise

Condition requise Valeur
Plateforme cible Universal
Version KMDF minimale 1.0
En-tête wdfchildlist.h (inclure Wdf.h)
IRQL <= DISPATCH_LEVEL

Voir aussi

EvtChildListCreateDevice

WDF_CHILD_ADDRESS_DESCRIPTION_HEADER

WdfChildListCreate

WdfDeviceCreate

WdfFdoInitSetDefaultChildListConfig