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 |
---|---|
|
O parâmetro IoTarget, InterfaceType ou Interface é NULL. |
|
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) |