Remarque
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 méthode WdfFdoAddStaticChild ajoute un appareil spécifié à la liste des périphériques enfants identifiés par l’énumération statique à un pilote de fonction.
Syntaxe
NTSTATUS WdfFdoAddStaticChild(
[in] WDFDEVICE Fdo,
[in] WDFDEVICE Child
);
Paramètres
[in] Fdo
Handle vers un objet d’appareil framework qui représente l’appareil parent.
[in] Child
Handle vers un objet d’appareil framework qui représente l’appareil enfant.
Valeur de retour
Si l’opération réussit, la méthode retourne STATUS_SUCCESS. Les valeurs de retour supplémentaires sont les suivantes :
| Code de retour | Description |
|---|---|
|
Fdo n’est pas un handle pour l’objet de périphérique d’un pilote de fonction. |
La méthode peut également retourner d’autres valeurs NTSTATUS .
Une vérification des bogues système se produit si le pilote fournit un handle d’objet non valide.
Remarques
Les pilotes qui utilisent l’énumération de bus statique peuvent appeler WdfFdoAddStaticChild. Pour plus d’informations sur les listes enfants statiques, consultez énumération des appareils sur un bus.
Si WdfFdoAddStaticChild retourne une valeur NTSTATUS NT_SUCCESS évaluée comme faux, le pilote doit appeler WdfObjectDelete pour supprimer l’objet d’appareil framework qui représente l’appareil enfant. Le pilote ne doit pas supprimer l’objet d’appareil framework après WdfFdoAddStaticChild retourne STATUS_SUCCESS.
Exemples
L’exemple de code suivant crée un objet d’appareil framework qui représente un nouvel appareil enfant et ajoute l’appareil enfant à la liste des enfants de l’appareil parent. Pour obtenir l’exemple de code complet, consultez l’exemple de pilote KbFiltr.
NTSTATUS status;
PWDFDEVICE_INIT pDeviceInit = NULL;
WDFDEVICE hChild = NULL;
WDF_OBJECT_ATTRIBUTES pdoAttributes;
pDeviceInit = WdfPdoInitAllocate(Device);
if (pDeviceInit == NULL) {
status = STATUS_INSUFFICIENT_RESOURCES;
goto Cleanup;
}
...
status = WdfDeviceCreate(
&pDeviceInit,
&pdoAttributes,
&hChild
);
if (!NT_SUCCESS(status)) {
WdfDeviceInitFree(pDeviceInit);
pDeviceInit = NULL;
goto Cleanup;
}
...
status = WdfFdoAddStaticChild(
Device,
hChild
);
if (!NT_SUCCESS(status)) {
goto Cleanup;
}
Spécifications
| Besoin | Valeur |
|---|---|
| plateforme cible | Universel |
| version minimale de KMDF | 1.0 |
| En-tête | wdffdo.h (include Wdf.h) |
| Bibliothèque | Wdf01000.sys (voir Versioning de la bibliothèque Framework.) |
| IRQL | <= DISPATCH_LEVEL |
| règles de conformité DDI | addPdoToStaticChildList(kmdf), DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf) |