Compartilhar 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 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
STATUS_INVALID_PARAMETER
O objeto de dispositivo é inválido ou se o parâmetro Device, InterfaceType ou Interface for NULL.
STATUS_INSUFFICIENT_RESOURCES
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)

Confira também

WdfIoTargetQueryForInterface