Compartilhar via


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
E_OUTOFMEMORY
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

Confira também

IWDFDevice2

IWDFDevice2::CreateRemoteTarget

IWDFRemoteTarget::OpenRemoteInterface