Método IWDFDevice2::CreateRemoteInterface (wudfddi.h)
[Aviso: UMDF 2 é a versão mais recente do UMDF e substitui UMDF 1. Todos os novos drivers UMDF devem ser gravados usando UMDF 2. Nenhum novo recurso está sendo adicionado ao UMDF 1 e há suporte limitado para UMDF 1 em versões mais recentes do Windows 10. Drivers universais do Windows devem usar UMDF 2. Para obter mais informações, consulte Introdução com UMDF.]
O método CreateRemoteInterface cria um objeto de interface remota que representa uma interface do dispositivo.
Sintaxe
HRESULT CreateRemoteInterface(
[in] IWDFRemoteInterfaceInitialize *pRemoteInterfaceInit,
[in, optional] IUnknown *pCallbackInterface,
[out] IWDFRemoteInterface **ppRemoteInterface
);
Parâmetros
[in] pRemoteInterfaceInit
Um ponteiro para uma interface IWDFRemoteInterfaceInitialize que a função de retorno de chamada IPnpCallbackRemoteInterfaceNotification::OnRemoteInterfaceArrival do driver recebeu.
[in, optional] pCallbackInterface
Um ponteiro para uma interface de retorno de chamada opcional fornecida pelo driver. O método IUnknown::QueryInterface dessa interface deve retornar um ponteiro para as interfaces IRemoteInterfaceCallbackEvent e IRemoteInterfaceCallbackRemoval do driver, se o driver der suporte a essas interfaces. Esse parâmetro é opcional e pode ser NULL.
[out] ppRemoteInterface
Um ponteiro para um local fornecido pelo driver que recebe um ponteiro para a interface IWDFRemoteInterface do novo objeto de interface remota.
Retornar valor
CreateRemoteInterface retornará S_OK se a operação for bem-sucedida. Caso contrário, o método poderá retornar o seguinte valor:
Código de retorno | Descrição |
---|---|
|
Falha na tentativa da estrutura de alocar memória. |
Esse método pode retornar um dos outros valores que Winerror.h contém.
Comentários
Se o driver chamar CreateRemoteInterface, ele deverá fazer isso de dentro de sua função de retorno de chamada IPnpCallbackRemoteInterfaceNotification::OnRemoteInterfaceArrival .
Para obter mais informações sobre CreateRemoteInterface e como usar interfaces de dispositivo, consulte Usando interfaces de dispositivo em drivers baseados em UMDF
Exemplos
O exemplo de código a seguir mostra uma função de retorno de chamada IPnpCallbackRemoteInterfaceNotification::OnRemoteInterfaceArrival que cria um objeto de interface remota, cria um objeto de destino remoto e abre o destino remoto para operações de E/S.
void
STDMETHODCALLTYPE
CMyDevice::OnRemoteInterfaceArrival(
__in IWDFRemoteInterfaceInitialize * FxRemoteInterfaceInit
)
{
HRESULT hr = S_OK;
//
// Create a new remote interface object and provide a callback
// object to handle remote interface events.
//
CComPtr<IWDFRemoteInterface> fxRemoteInterface;
hr = m_FxDevice->CreateRemoteInterface(FxRemoteInterfaceInit,
MyRemoteInterfaceIUnknown,
&fxRemoteInterface);
if (FAILED(hr)) goto Error;
//
// Create a new remote target object and provide a callback
// object to handle remote target events.
//
CComPtr<IWDFRemoteTarget> fxTarget;
hr = m_FxDevice->CreateRemoteTarget(MyRemoteTargetIUnknown,
fxRemoteInterface,
&fxTarget);
if (FAILED(hr)) goto Error;
//
// Open the remote interface with read/write access.
//
hr = FxTarget->OpenRemoteInterface(fxRemoteInterface,
NULL,
GENERIC_READ | GENERIC_WRITE,
NULL);
if (FAILED(hr)) goto Error;
...
}
Requisitos
Requisito | Valor |
---|---|
Fim do suporte | Indisponível no UMDF 2.0 e posterior. |
Plataforma de Destino | Área de Trabalho |
Versão mínima do UMDF | 1,9 |
Cabeçalho | wudfddi.h (include Wudfddi.h) |
DLL | WUDFx.dll |