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