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 méthode WdfFdoRetrieveNextStaticChild récupère un handle à l’objet d’appareil framework suivant dans une liste d’appareils enfants.
Syntaxe
WDFDEVICE WdfFdoRetrieveNextStaticChild(
[in] WDFDEVICE Fdo,
[in, optional] WDFDEVICE PreviousChild,
[in] ULONG Flags
);
Paramètres
[in] Fdo
Handle vers un objet d’appareil framework qui représente l’appareil parent.
[in, optional] PreviousChild
Handle vers un objet d’appareil framework qui représente l’appareil enfant retourné par un appel précédent à WdfFdoRetrieveNextStaticChild. Pour le premier appel à WdfFdoRetrieveNextStaticChild, cette valeur doit être NULL.
[in] Flags
Valeur d’énumérateur WDF_RETRIEVE_CHILD_FLAGS-typée qui identifie le type d’appareils enfants que la méthode doit récupérer. Ce paramètre ne peut pas être égal à zéro.
Valeur de retour
Si l’opération réussit, la méthode retourne un handle à un objet d’appareil framework. Sinon, elle retourne NULL .
Une vérification des bogues système se produit si le pilote fournit un handle d’objet non valide.
Remarques
Les pilotes de bus qui utilisent l’énumération de bus statique peuvent appeler WdfFdoRetrieveNextStaticChild.
Pour récupérer les éléments d’une liste d’appareils enfants, le pilote doit :
- Appelez WdfFdoLockStaticChildListForIteration pour verrouiller la liste enfant.
- Appelez à plusieurs reprises WdfFdoRetrieveNextStaticChild pour obtenir les éléments de la liste, un par un, jusqu’à ce que la méthode retourne NULL.
- Appelez WdfFdoUnlockStaticChildListFromIteration pour déverrouiller la liste enfant.
Exemples
L’exemple de code suivant recherche une liste enfant statique jusqu’à ce qu’il trouve un appareil enfant avec un numéro de série qui correspond à une valeur spécifique. Pour d’autres exemples d’utilisations de WdfFdoRetrieveNextStaticChild, consultez l’exemple de pilote de bus Grille-pain.
PPDO_DEVICE_DATA pdoData;
WDFDEVICE hChild;
NTSTATUS status = STATUS_INVALID_PARAMETER;
WdfFdoLockStaticChildListForIteration(Device);
while ((hChild = WdfFdoRetrieveNextStaticChild(
Device,
hChild,
WdfRetrieveAddedChildren
)) != NULL) {
//
// Obtain device object context data and check the
// stored serial number.
//
pdoData = PdoGetData(hChild);
if (SerialNo == pdoData->SerialNo) {
status = STATUS_SUCCESS;
WdfPdoRequestEject(hChild);
break;
}
}
WdfFdoUnlockStaticChildListFromIteration(Device);
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 | DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf), PdoDeviceInitAPI(kmdf) |