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 |