Funzione WdfChildListRetrievePdo (wdfchildlist.h)
[Si applica solo a KMDF]
Il metodo WdfChildListRetrievePdo restituisce un handle all'oggetto dispositivo framework associato a una descrizione figlio specificata in un elenco figlio.
Sintassi
WDFDEVICE WdfChildListRetrievePdo(
[in] WDFCHILDLIST ChildList,
[in, out] PWDF_CHILD_RETRIEVE_INFO RetrieveInfo
);
Parametri
[in] ChildList
Handle per un oggetto elenco figlio.
[in, out] RetrieveInfo
Puntatore a una struttura di WDF_CHILD_RETRIEVE_INFO allocata dal driver inizializzata dal driver con la descrizione di identificazione dell'elemento figlio da recuperare.
Valore restituito
WdfChildListRetrievePdo restituisce un handle all'oggetto dispositivo framework se il dispositivo figlio specificato si trova nell'elenco figlio, se esiste un oggetto dispositivo framework per il dispositivo figlio e se il framework ha segnalato l'esistenza del dispositivo al gestore PnP. In caso contrario, il metodo restituisce NULL. Il framework restituisce informazioni sullo stato aggiuntive nel membro Status della struttura WDF_CHILD_RETRIEVE_INFO .
Un controllo dei bug di sistema si verifica se il driver fornisce un handle di oggetto non valido.
Commenti
Prima di chiamare WdfChildListRetrievePdo, il driver deve inserire una descrizione di identificazione in una struttura WDF_CHILD_RETRIEVE_INFO .
Il metodo WdfChildListRetrievePdo attraversa l'elenco figlio specificato, cercando un elemento figlio con una descrizione di identificazione corrispondente a quella fornita dal driver nella struttura WDF_CHILD_RETRIEVE_INFO. Se il framework trova una corrispondenza e se l'elemento figlio ha una descrizione dell'indirizzo, il framework compila la descrizione dell'indirizzo della struttura.
Assicurarsi di eseguire il wrapping di questa chiamata con WdfChildListBeginIteration e WdfChildListEndIteration per proteggere il chiamante dalla rimozione improvvisa di PnP del PDO in un altro thread.
Per altre informazioni sugli elenchi figlio, vedere Enumerazione dinamica.
Esempio
Nell'esempio di codice seguente viene eseguita una ricerca in un elenco figlio per trovare un dispositivo figlio la cui descrizione di identificazione contiene un numero di serie specificato e ottiene un handle per l'oggetto dispositivo che rappresenta il dispositivo figlio.
WDF_CHILD_LIST_ITERATOR iterator;
PDO_IDENTIFICATION_DESCRIPTION description;
WDF_CHILD_RETRIEVE_INFO info;
WDFDEVICE hChild;
WDF_CHILD_IDENTIFICATION_DESCRIPTION_HEADER_INIT(
&description.Header,
sizeof(description)
);
description.SerialNo = DeviceSerialNumber;
WDF_CHILD_RETRIEVE_INFO_INIT(
&info,
&description.Header
);
WDF_CHILD_LIST_ITERATOR_INIT(&iterator, WdfRetrieveAllChildren);
WdfChildListBeginIteration(childList, &iterator);
hChild = WdfChildListRetrievePdo(
childList,
&info
);
... access hChild ...
WdfChildListEndIteration(childList, &iterator);
Requisiti
Requisito | Valore |
---|---|
Piattaforma di destinazione | Universale |
Versione KMDF minima | 1.0 |
Intestazione | wdfchildlist.h (include Wdf.h) |
Libreria | Wdf01000.sys (vedere Controllo delle versioni della libreria framework). |
IRQL | <= DISPATCH_LEVEL |
Regole di conformità DDI | DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf) |