Partilhar via


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 pelo 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.

Valor de retorno

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
STATUS_INVALID_PARAMETER
O objeto do dispositivo é inválido ou se o parâmetro Device, InterfaceTypeou Interface estiver NULL.
STATUS_INSUFFICIENT_RESOURCES
A estrutura não pôde alocar uma solicitação para enviar para outro driver.
 

O método também pode retornar outros valores NTSTATUS .

Uma verificação de bugs do sistema ocorre se o driver fornece um identificador de objeto inválido.

Observações

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 do Toaster. Este exemplo obtém acesso a uma interface que o driver de ônibus 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
da Plataforma de Destino Universal
versão mínima do KMDF 1.0
cabeçalho wdffdo.h (inclua Wdf.h)
Biblioteca Wdf01000.sys (consulte o Controle de Versão da Biblioteca da Estrutura.)
IRQL PASSIVE_LEVEL
regras de conformidade de DDI DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf)

Consulte também

WdfIoTargetQueryForInterface