Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
[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 |
|---|---|
|
O objeto do dispositivo é inválido ou se o parâmetro Device, InterfaceTypeou Interface estiver NULL. |
|
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) |