Função WdfFdoQueryForInterface (wdffdo.h)
[Aplica-se somente ao KMDF]
O método WdfFdoQueryForInterface obtém acesso à interface identificada por GUID de outro driver.
Sintaxe
NTSTATUS WdfFdoQueryForInterface(
[in] WDFDEVICE Fdo,
[in] LPCGUID InterfaceType,
[out] PINTERFACE Interface,
[in] USHORT Size,
[in] USHORT Version,
[in, optional] PVOID InterfaceSpecificData
);
Parâmetros
[in] Fdo
Um identificador para um objeto de dispositivo de estrutura.
[in] InterfaceType
Um ponteiro para um GUID que identifica a interface.
[out] Interface
Um ponteiro para uma estrutura alocada por driver que recebe a interface solicitada. Essa estrutura é definida pelo driver que exporta a interface solicitada e deve começar com uma estrutura INTERFACE .
[in] Size
O tamanho, em bytes, da estrutura alocada pelo driver que representa a interface solicitada.
[in] Version
O número de versão da interface solicitada. O formato desse valor é definido pelo driver que exporta a interface solicitada.
[in, optional] InterfaceSpecificData
Informações adicionais específicas da interface. Esse parâmetro é opcional e pode ser NULL.
Retornar valor
Se a operação for bem-sucedida, o método retornará STATUS_SUCCESS. Os valores de retorno adicionais incluem:
Código de retorno | Descrição |
---|---|
|
O objeto de dispositivo é inválido ou se o parâmetro Device, InterfaceType ou Interface for NULL. |
|
A estrutura não pôde alocar uma solicitação para enviar a outro driver. |
O método também pode retornar outros valores NTSTATUS.
Um bug do sistema marcar ocorrerá se o driver fornecer um identificador de objeto inválido.
Comentários
Seu driver pode chamar WdfFdoQueryForInterface para obter acesso a uma interface definida pelo driver que foi criada por um driver que está na mesma pilha de driver em que o driver está. Para acessar uma interface definida pelo driver que foi criada por um driver que está em uma pilha de driver diferente, seu driver deve chamar WdfIoTargetQueryForInterface.
Os drivers baseados em estrutura definem interfaces chamando WdfDeviceAddQueryInterface.
Para obter mais informações sobre WdfFdoQueryForInterface, consulte Using Driver-Defined Interfaces.
Exemplos
O exemplo de código a seguir é do driver de função de exemplo toaster . Este exemplo obtém acesso a uma interface que o driver de barramento de exemplo da torradeira define.
status = WdfFdoQueryForInterface(
Device,
&GUID_TOASTER_INTERFACE_STANDARD,
(PINTERFACE) &fdoData->BusInterface, // Object context space
sizeof(TOASTER_INTERFACE_STANDARD),
1,
NULL
);
Requisitos
Requisito | Valor |
---|---|
Plataforma de Destino | Universal |
Versão mínima do KMDF | 1.0 |
Cabeçalho | wdffdo.h (include Wdf.h) |
Biblioteca | Wdf01000.sys (consulte Controle de versão da biblioteca de estrutura.) |
IRQL | PASSIVE_LEVEL |
Regras de conformidade da DDI | DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf) |