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 uniquement à KMDF]
La fonction de rappel d’événement EvtChildListIdentificationDescriptionCopy pilote copie une description d’identification enfant d’un emplacement spécifié vers un autre.
Syntaxe
EVT_WDF_CHILD_LIST_IDENTIFICATION_DESCRIPTION_COPY EvtWdfChildListIdentificationDescriptionCopy;
void EvtWdfChildListIdentificationDescriptionCopy(
[in] WDFCHILDLIST ChildList,
[in] PWDF_CHILD_IDENTIFICATION_DESCRIPTION_HEADER SourceIdentificationDescription,
[out] PWDF_CHILD_IDENTIFICATION_DESCRIPTION_HEADER DestinationIdentificationDescription
)
{...}
Paramètres
[in] ChildList
Handle d’un objet de liste enfant de framework.
[in] SourceIdentificationDescription
Pointeur vers une structure WDF_CHILD_IDENTIFICATION_DESCRIPTION_HEADER qui identifie l’emplacement source de la description de l’identification enfant.
[out] DestinationIdentificationDescription
Pointeur vers une structure WDF_CHILD_IDENTIFICATION_DESCRIPTION_HEADER qui identifie l’emplacement de destination de la description de l’identification enfant.
Valeur de retour
Aucun
Remarques
Si un pilote de bus utilise énumération dynamique, il peut inscrire une fonction de rappel EvtChildListIdentificationDescriptionCopy en appelant WdfFdoInitSetDefaultChildListConfig ou WdfChildListCreate.
Le framework copie les informations d’une description d’identification fournie par un pilote vers une autre lorsqu’elle doit mettre à jour une description existante avec de nouvelles informations, ou lorsqu’elle doit transmettre le contenu d’une description d’identification au pilote.
La fonction de rappel EvtChildListIdentificationDescriptionCopy doit copier le contenu d’une description source vers une description de destination. Un pilote doit fournir cette fonction de rappel si l’infrastructure ne peut pas appeler RtlCopyMemory pour copier la description de l’identification. (L’infrastructure ne peut pas appeler RtlCopyMemory si la description contient des pointeurs vers une mémoire supplémentaire.)
Si votre pilote ne fournit pas de fonction de rappel EvtChildListIdentificationDescriptionCopy, l’infrastructure copie les descriptions d’identification en appelant RtlCopyMemory.
Les étapes suivantes décrivent un scénario possible :
- Le pilote qui traverse une liste enfant appelle WdfChildListRetrieveNextDevice. Le pilote fournit une structure WDF_CHILD_RETRIEVE_INFO afin qu’il puisse recevoir la description d’identification de l’appareil enfant.
- L’infrastructure appelle la fonction de rappel EvtChildListIdentificationDescriptionCopy (le cas échéant) ou RtlCopyMemory pour copier la description d’identification de l’appareil. La source de l’opération de copie est la copie interne de l’infrastructure de la description. La destination est la mémoire que le pilote a allouée et identifiée dans sa structure WDF_CHILD_RETRIEVE_INFO.
- Dans les structures de la fonction de rappel SourceIdentificationDescription et DestinationIdentificationDescription, recherchez les pointeurs vers la mémoire allouée dynamiquement.
- Copiez la mémoire allouée dynamiquement de la source vers la destination à l’aide des pointeurs.
- Copiez d’autres membres de structure de la fonction de rappel SourceIdentificationDescription structure vers la structure DestinationIdentificationDescription de la fonction de rappel.
L’infrastructure acquiert un verrou d’objet de liste enfant interne avant d’appeler la fonction de rappel EvtChildListIdentificationDescriptionCopy. La fonction de rappel doit effectuer uniquement des opérations liées à l’opération de copie, telles que l’appel des méthodes d’objet mémoire du framework et l’accès à l’espace de contexte d’objet. Il ne doit pas appeler des méthodes qui accèdent à d’autres pilotes.
Si votre pilote fournit une fonction de rappel EvtChildListIdentificationDescriptionCopy, il peut également avoir besoin d'EvtChildListIdentificationDescriptionDuplicate, EvtChildListIdentificationDescriptionCompareet EvtChildListIdentificationDescriptionCleanup fonctions de rappel.
Pour plus d’informations sur l’énumération dynamique, consultez énumération des appareils sur un bus.
Exigences
Exigence | Valeur |
---|---|
plateforme cible | Universel |
version minimale de KMDF | 1.0 |
d’en-tête | wdfchildlist.h (include Wdf.h) |
IRQL | <= DISPATCH_LEVEL |
Voir aussi
EvtChildListIdentificationDescriptionCleanup
EvtChildListIdentificationDescriptionCompare
EvtChildListIdentificationDescriptionDuplicate