Compartilhar via


EVT_WDF_DEVICE_RELATIONS_QUERY função de retorno de chamada (wdfdevice.h)

[Aplica-se somente ao KMDF]

O de um driver EvtDeviceRelationsQuery relata alterações nas relações entre dispositivos compatíveis com o driver.

Sintaxe

EVT_WDF_DEVICE_RELATIONS_QUERY EvtWdfDeviceRelationsQuery;

void EvtWdfDeviceRelationsQuery(
  [in] WDFDEVICE Device,
  [in] DEVICE_RELATION_TYPE RelationType
)
{...}

Parâmetros

[in] Device

Um identificador para um objeto de dispositivo de estrutura.

[in] RelationType

Um valor de enumerador tipo DEVICE_RELATION_TYPE. A enumeração DEVICE_RELATION_TYPE é definida em wdm.h.

Valor de retorno

Nenhum

Observações

Para registrar a função de retorno de chamada EvtDeviceRelationsQuery, um driver deve chamar WdfDeviceInitSetPnpPowerEventCallbacks.

A maioria dos drivers baseados em estrutura não precisa fornecer essa função de retorno de chamada.

Durante a inicialização do sistema, o Gerenciador de Plug and Play enumera todos os dispositivos no sistema enviando uma solicitação IRP_MN_QUERY_DEVICE_RELATIONS para a pilha de driver. Se um driver baseado em estrutura tiver registrado uma função de retorno de chamada EvtDeviceRelationsQuery, a estrutura a chamará. O driver de função do barramento deve relatar todos os dispositivos filho anexados ao ônibus.

Além disso, depois que a estrutura chama o IoInvalidateDeviceRelations rotina para relatar uma relação alterada entre os dispositivos no barramento do motorista, o gerenciador do Plug and Play envia outra solicitação IRP_MN_QUERY_DEVICE_RELATIONS para a pilha de driver. Em seguida, a estrutura chama a função de retorno de chamada do driver EvtDeviceRelationsQuery para que o driver possa fornecer detalhes sobre a alteração.

O tipo de trabalho que um driver deve fazer depende do valor recebido para o parâmetro RelationType. O valor pode ser um dos seguintes:

BusRelations

    A maioria dos drivers baseados em estrutura não relata relações de barramento em uma função de retorno de chamada EvtDeviceRelationsQuery. Em vez disso, os drivers seguem as diretrizes descritas na enumeração dos dispositivos em um barramento.

de Ejeções de

    A maioria dos drivers baseados em estrutura não relata relações de ejeção em uma função de retorno de chamada EvtDeviceRelationsQuery. Em vez disso, o driver do barramento do dispositivo chama WdfPdoAddEjectionRelationsPhysicalDevice e WdfPdoRemoveEjectionRelationsPhysicalDevice.

RemovalRelations

    A maioria dos drivers baseados em estrutura não relata relações de remoção em uma função de retorno de chamada EvtDeviceRelationsQuery. Em vez disso, os drivers chamam WdfDeviceAddRemovalRelationsPhysicalDevice e WdfDeviceRemoveRemovalRelationsPhysicalDevice.

targetDeviceRelation

    Os drivers baseados em estrutura não precisam relatar a relação de destino de um dispositivo. Em vez disso, a estrutura manipula essa solicitação.

A estrutura pode chamar a função de retorno de chamada EvtDeviceRelationsQuery com um valor RelationType de EvtDeviceRelations ou RemovalRelations mesmo que o dispositivo esteja sendo removido.

Requisitos

Requisito Valor
da Plataforma de Destino Universal
versão mínima do KMDF 1.0
cabeçalho wdfdevice.h (inclua Wdf.h)
IRQL PASSIVE_LEVEL