Compartilhar via


Método IWDFRemoteTarget::OpenRemoteInterface (wudfddi.h)

[Aviso: UMDF 2 é a versão mais recente do UMDF e substitui o UMDF 1. Todos os novos drivers UMDF devem ser gravados usando UMDF 2. Nenhum recurso novo está sendo adicionado ao UMDF 1 e há suporte limitado para UMDF 1 em versões mais recentes do Windows 10. Os drivers universais do Windows devem usar o UMDF 2. Para obter mais informações, consulte Introdução aoda UMDF .]

O método OpenRemoteInterface abre uma interface do dispositivo para que o driver possa enviar solicitações de E/S para ele.

Sintaxe

HRESULT OpenRemoteInterface(
  [in]           IWDFRemoteInterface         *pRemoteInterface,
  [in, optional] PCWSTR                      pszRelativeFileName,
  [in]           DWORD                       DesiredAccess,
  [in, optional] PUMDF_IO_TARGET_OPEN_PARAMS pOpenParams
);

Parâmetros

[in] pRemoteInterface

Um ponteiro para uma interface IWDFRemoteInterface que o driver obteve de uma chamada anterior para IWDFDevice2::CreateRemoteInterface.

[in, optional] pszRelativeFileName

Um ponteiro opcional para um chamador fornecido, cadeia de caracteresterminada nula que a estrutura acrescenta ao nome simbólico do link da interface do dispositivo.

[in] DesiredAccess

Uma máscara de bits que especifica o acesso desejado do chamador ao arquivo. Para obter mais informações sobre esse membro, consulte o parâmetro DesiredAccess de CreateFile no SDK do Windows.

[in, optional] pOpenParams

Um ponteiro para uma estrutura de UMDF_IO_TARGET_OPEN_PARAMS alocada por chamador que contém parâmetros adicionais. Esse parâmetro é opcional e pode ser NULL.

Valor de retorno

OpenRemoteInterface 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.

O verificador de da estrutura relatará um erro se a estrutura não puder abrir o arquivo.

Observações

Depois que um driver IPnpCallbackRemoteInterfaceNotification::OnRemoteInterfaceArrival função de retorno de chamada recebe a notificação de que uma interface do dispositivo está disponível, e depois que o driver chama IWDFDevice2::CreateRemoteInterface para criar um objeto de interface remota, o driver pode chamar OpenRemoteInterface para que possa enviar solicitações de E/S para a interface do dispositivo.

A interface do dispositivo deve ser acessível pela conta que carregou o driver baseado em UMDF, que normalmente é a conta de Serviço Local. No entanto, se o driver usa representação quando chama OpenRemoteInterface, a interface do dispositivo deve ser acessível pela conta representada.

Para obter mais informações sobre OpenRemoteInterface e como usar interfaces de dispositivo em drivers baseados em UMDF, consulte Usando interfaces de dispositivo em drivers baseados em UMDF.

Exemplos

O exemplo de código a seguir mostra como uma função de retorno de chamada IPnpCallbackRemoteInterfaceNotification::OnRemoteInterfaceArrival pode criar uma interface remota e objetos de destino remotos para uma interface do dispositivo e, em seguida, abrir a interface para operações de E/S.

void 
STDMETHODCALLTYPE
CMyDevice::OnRemoteInterfaceArrival(
    __in IWDFRemoteInterfaceInitialize * FxRemoteInterfaceInit
    )
...
    HRESULT hr;
    CComPtr<IWDFRemoteInterface> fxRemoteInterface;
    CComPtr<IWDFRemoteTarget> m_FxTarget;

    hr = m_FxDevice->CreateRemoteInterface(FxRemoteInterfaceInit, 
                                           NULL, 
                                           &fxRemoteInterface);
    if (FAILED(hr)) goto Error;
    hr = FxDevice->CreateRemoteTarget(unknown,
                                      fxRemoteInterface,
                                      &m_FxTarget);
    if (FAILED(hr)) goto Error;
    hr = m_FxTarget->OpenRemoteInterface(fxRemoteInterface, 
                                         NULL,
                                         GENERIC_READ | GENERIC_WRITE,
                                         NULL);
...
Error:
...

Requisitos

Requisito Valor
fim do suporte Indisponível no UMDF 2.0 e posterior.
da Plataforma de Destino Área de trabalho
versão mínima do UMDF 1.9
cabeçalho wudfddi.h (inclua Wudfddi.h)
de DLL WUDFx.dll

Consulte também

IWDFRemoteTarget

IWDFRemoteTarget::OpenFileByName