Compartilhar via


Função WdfChildListRetrievePdo (wdfchildlist.h)

[Aplica-se somente ao KMDF]

O método WdfChildListRetrievePdo retorna um identificador para o objeto de dispositivo de estrutura associado a uma descrição filho especificada em uma lista filho.

Sintaxe

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

Parâmetros

[in] ChildList

Um identificador para um objeto de lista filho.

[in, out] RetrieveInfo

Um ponteiro para uma estrutura de WDF_CHILD_RETRIEVE_INFO alocada por driver que o driver inicializa com a descrição de identificação do filho a ser recuperado.

Retornar valor

WdfChildListRetrievePdo retornará um identificador para o objeto de dispositivo da estrutura se o dispositivo filho especificado estiver localizado na lista filho, se houver um objeto de dispositivo de estrutura para o dispositivo filho e se a estrutura tiver relatado a existência do dispositivo ao gerenciador PnP. Caso contrário, o método retornará NULL. A estrutura retorna informações adicionais de status no membro Status da estrutura WDF_CHILD_RETRIEVE_INFO.

Um bug do sistema marcar ocorrerá se o driver fornecer um identificador de objeto inválido.

Comentários

Antes de chamar WdfChildListRetrievePdo, o driver deve colocar uma descrição de identificação em uma estrutura WDF_CHILD_RETRIEVE_INFO .

O método WdfChildListRetrievePdo percorre a lista filho especificada, procurando um filho com uma descrição de identificação que corresponda à que o driver forneceu na estrutura WDF_CHILD_RETRIEVE_INFO. Se a estrutura encontrar uma correspondência e se o filho tiver uma descrição de endereço, a estrutura preencherá a descrição do endereço da estrutura.

Lembre-se de encapsular essa chamada com WdfChildListBeginIteration e WdfChildListEndIteration para proteger o chamador contra a remoção repentina de PnP do PDO em outro thread.

Para obter mais informações sobre listas filho, consulte Enumeração dinâmica.

Exemplos

O exemplo de código a seguir pesquisa uma lista filho para localizar um dispositivo filho cuja descrição de identificação contém um número de série especificado e obtém um identificador para o objeto de dispositivo que representa o dispositivo filho.

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
Plataforma de Destino Universal
Versão mínima do KMDF 1.0
Cabeçalho wdfchildlist.h (inclua Wdf.h)
Biblioteca Wdf01000.sys (consulte Controle de versão da biblioteca de estrutura.)
IRQL <= DISPATCH_LEVEL
Regras de conformidade da DDI DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf)

Confira também

WDF_CHILD_IDENTIFICATION_DESCRIPTION_HEADER_INIT

WDF_CHILD_RETRIEVE_INFO

WDF_CHILD_RETRIEVE_INFO_INIT