Compartir a través de


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 estado miembro 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.

Observaciones

Antes de llamar a WdfChildListRetrievePdo, el controlador debe colocar una descripción de identificación en una estructura 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 Valor
de la plataforma de destino de Universal
versión mínima de KMDF 1.0
encabezado de wdfchildlist.h (incluya Wdf.h)
biblioteca de 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