Función WdfChildListRetrievePdo (wdfchildlist.h)

[Solo se aplica a KMDF]

El método WdfChildListRetrievePdo devuelve un identificador al objeto de dispositivo de marco asociado a una descripción secundaria especificada en una lista secundaria.

Sintaxis

WDFDEVICE WdfChildListRetrievePdo(
  [in]      WDFCHILDLIST             ChildList,
  [in, out] PWDF_CHILD_RETRIEVE_INFO RetrieveInfo
);

Parámetros

[in] ChildList

Identificador de un objeto de lista secundario.

[in, out] RetrieveInfo

Puntero a una estructura de WDF_CHILD_RETRIEVE_INFO asignada por el controlador que el controlador inicializa con la descripción de identificación del elemento secundario que se va a recuperar.

Valor devuelto

WdfChildListRetrievePdo devuelve un identificador al objeto de dispositivo de marco si el dispositivo secundario especificado se encuentra en la lista secundaria, si existe un objeto de dispositivo de marco para el dispositivo secundario y si el marco ha notificado la existencia del dispositivo al administrador de PnP. De lo contrario, el método devuelve NULL. El marco devuelve información de estado adicional en el miembro Status de la estructura WDF_CHILD_RETRIEVE_INFO .

Se produce una comprobación de errores del sistema si el controlador proporciona un identificador de objeto no válido.

Comentarios

Antes de llamar a WdfChildListRetrievePdo, el controlador debe colocar una descripción de identificación en una estructura de WDF_CHILD_RETRIEVE_INFO .

El método WdfChildListRetrievePdo recorre la lista secundaria especificada, buscando un elemento secundario con una descripción de identificación que coincida con la proporcionada por el controlador en la estructura WDF_CHILD_RETRIEVE_INFO. Si el marco encuentra una coincidencia y si el elemento secundario tiene una descripción de dirección, el marco rellena la descripción de la dirección de la estructura.

Asegúrese de encapsular esta llamada con WdfChildListBeginIteration y WdfChildListEndIteration para proteger al autor de la llamada de la eliminación repentina de PnP del PDO en otro subproceso.

Para obtener más información sobre las listas secundarias, vea Enumeración dinámica.

Ejemplos

En el ejemplo de código siguiente se busca una lista secundaria para buscar un dispositivo secundario cuya descripción de identificación contiene un número de serie especificado y obtiene un identificador para el objeto de dispositivo que representa el dispositivo secundario.

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);

Requisitos

Requisito Value
Plataforma de destino Universal
Versión mínima de KMDF 1.0
Encabezado wdfchildlist.h (incluya Wdf.h)
Library Wdf01000.sys (consulte Control de versiones de la biblioteca de marcos).
IRQL <= DISPATCH_LEVEL
Reglas de cumplimiento de DDI DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf)

Consulte también

WDF_CHILD_IDENTIFICATION_DESCRIPTION_HEADER_INIT

WDF_CHILD_RETRIEVE_INFO

WDF_CHILD_RETRIEVE_INFO_INIT