Função WdfChildListRetrievePdo (wdfchildlist.h)
[Aplica-se somente ao KMDF]
O método WdfChildListRetrievePdo retorna um identificador para o objeto de dispositivo da 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 pelo driver que o driver inicializa com a descrição de identificação do filho a ser recuperado.
Valor de retorno
WdfChildListRetrievePdo retornará um identificador para o objeto do 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 de status adicionais no Status membro da estrutura de WDF_CHILD_RETRIEVE_INFO.
Uma verificação de bugs do sistema ocorre se o driver fornece um identificador de objeto inválido.
Observações
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 uma criança 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 PnP repentina 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 do 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 |
---|---|
da Plataforma de Destino | Universal |
versão mínima do KMDF | 1.0 |
cabeçalho | wdfchildlist.h (inclua Wdf.h) |
biblioteca | Wdf01000.sys (consulte o Controle de Versão da Biblioteca da Estrutura.) |
IRQL | <= DISPATCH_LEVEL |
regras de conformidade de DDI | DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf) |