Compartilhar via


Função WdfIoTargetQueryForInterface (wdfiotarget.h)

[Aplica-se somente ao KMDF]

O método WdfIoTargetQueryForInterface obtém acesso à interface definida pelo driver e identificada por GUID de um destino de E/S remoto.

Sintaxe

NTSTATUS WdfIoTargetQueryForInterface(
  [in]           WDFIOTARGET IoTarget,
  [in]           LPCGUID     InterfaceType,
  [out]          PINTERFACE  Interface,
  [in]           USHORT      Size,
  [in]           USHORT      Version,
  [in, optional] PVOID       InterfaceSpecificData
);

Parâmetros

[in] IoTarget

Um identificador para um objeto de destino de E/S remoto que foi obtido de uma chamada anterior para WdfIoTargetCreate.

[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 para a qual a Interface aponta.

[in] Version

O número de versão da interface solicitada. O driver que exporta a interface solicitada define o formato desse valor.

[in, optional] InterfaceSpecificData

Informações adicionais específicas da interface. Esse parâmetro é opcional e pode ser NULL.

Retornar valor

WdfIoTargetQueryForInterface retornará STATUS_SUCCESS se a operação for bem-sucedida. Caso contrário, esse método poderá retornar um dos seguintes valores:

Código de retorno Descrição
STATUS_INVALID_PARAMETER
O parâmetro IoTarget, InterfaceType ou Interface é NULL.
STATUS_INSUFFICIENT_RESOURCES
a estrutura não pôde alocar uma solicitação para enviar para outro driver.
 

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

Um bug marcar ocorrerá se o driver fornecer um identificador de objeto inválido.

Comentários

Seu driver pode chamar WdfIoTargetQueryForInterface para obter acesso a uma interface definida pelo driver que foi criada por um driver em uma pilha de driver diferente. Para acessar uma interface definida pelo driver que foi criada por um driver que está na mesma pilha de driver que o driver, seu driver deve chamar WdfFdoQueryForInterface.

Os drivers baseados em estrutura definem interfaces chamando WdfDeviceAddQueryInterface. Para obter mais informações sobre interfaces definidas pelo driver, consulte Usando interfaces de Driver-Defined.

Exemplos

O exemplo de código a seguir tenta obter acesso à interface de um destino de E/S remoto especificado. GUID_RAWPDO_INTERFACE_STANDARD é o GUID que identifica a interface.

NTSTATUS status;
RAWPDO_INTERFACE_STANDARD busInterface;

status = WdfIoTargetQueryForInterface(
                                      IoTarget,
                                      &GUID_RAWPDO_INTERFACE_STANDARD,
                                      (PINTERFACE) &busInterface,
                                      sizeof(RAWPDO_INTERFACE_STANDARD),
                                      1,
                                      NULL
                                      );
if (!NT_SUCCESS (status)){
    return status;
}

Requisitos

Requisito Valor
Plataforma de Destino Universal
Versão mínima do KMDF 1.0
Cabeçalho wdfiotarget.h (inclua Wdf.h)
Biblioteca Wdf01000.sys (consulte Controle de versão da biblioteca de estrutura.)
IRQL PASSIVE_LEVEL
Regras de conformidade de DDI DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf)

Confira também

INTERFACE

WdfDeviceAddQueryInterface

WdfFdoQueryForInterface

WdfIoTargetCreate