Compartilhar via


Método IWDFRemoteTarget::OpenRemoteInterface (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 OpenRemoteInterface abre uma interface de 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 uma cadeia de caracteres terminada em nulo fornecida pelo chamador 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 pelo chamador que contém parâmetros adicionais. Esse parâmetro é opcional e pode ser NULL.

Retornar valor

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 da estrutura relatará um erro se a estrutura não puder abrir o arquivo.

Comentários

Depois que a função de retorno de chamada IPnpCallbackRemoteInterfaceNotification::OnRemoteInterfaceArrival de um driver recebe uma notificação de que uma interface de 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 usar representação quando chamar OpenRemoteInterface, a interface do dispositivo deverá 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 de dispositivo e 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.
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

IWDFRemoteTarget

IWDFRemoteTarget::OpenFileByName