Compartir a través de


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

[Advertencia: UMDF 2 es la versión más reciente de UMDF y sustituye a UMDF 1. Todos los controladores UMDF nuevos deben escribirse con UMDF 2. No se agregan nuevas características a UMDF 1 y hay compatibilidad limitada con UMDF 1 en versiones más recientes de Windows 10. Los controladores universales de Windows deben usar UMDF 2. Para obtener más información, consulta Introducción con UMDF.

El método OpenRemoteInterface abre una interfaz de dispositivo para que el controlador pueda enviar solicitudes de E/S a ella.

Sintaxis

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

Parámetros

[in] pRemoteInterface

Puntero a una interfaz IWDFRemoteInterface que el controlador obtuvo de una llamada anterior a IWDFDevice2::CreateRemoteInterface.

[in, optional] pszRelativeFileName

Puntero opcional a una cadena terminada en NULL proporcionada por el autor de la llamada que el marco anexa al nombre de vínculo simbólico de la interfaz del dispositivo.

[in] DesiredAccess

Máscara de bits que especifica el acceso deseado del llamador al archivo. Para obtener más información sobre este miembro, vea el parámetro DesiredAccess de CreateFile en el Windows SDK.

[in, optional] pOpenParams

Puntero a una estructura de UMDF_IO_TARGET_OPEN_PARAMS asignada por el autor de la llamada que contiene parámetros adicionales. Este parámetro es opcional y puede ser NULL.

Valor devuelto

OpenRemoteInterface devuelve S_OK si la operación se realiza correctamente. De lo contrario, el método podría devolver el siguiente valor:

Código devuelto Descripción
E_OUTOFMEMORY
Error en el intento del marco de trabajo de asignar memoria.
 

Este método podría devolver uno de los otros valores que contiene Winerror.h.

El comprobador del marco notifica un error si el marco no puede abrir el archivo.

Comentarios

Después de que la función de devolución de llamada IPnpCallbackRemoteInterfaceNotification::OnRemoteInterfaceArrival reciba una notificación de que hay disponible una interfaz de dispositivo y después de que el controlador llame a IWDFDevice2::CreateRemoteInterface para crear un objeto de interfaz remota, el controlador puede llamar a OpenRemoteInterface para que pueda enviar solicitudes de E/S a la interfaz del dispositivo.

La interfaz del dispositivo debe ser accesible por la cuenta que cargó el controlador basado en UMDF, que suele ser la cuenta de servicio local. Sin embargo, si el controlador usa suplantación cuando llama a OpenRemoteInterface, la interfaz del dispositivo debe ser accesible para la cuenta suplantada.

Para obtener más información sobre OpenRemoteInterface y cómo usar interfaces de dispositivo en controladores basados en UMDF, consulte Uso de interfaces de dispositivo en controladores basados en UMDF.

Ejemplos

En el ejemplo de código siguiente se muestra cómo una función de devolución de llamada IPnpCallbackRemoteInterfaceNotification::OnRemoteInterfaceArrival puede crear una interfaz remota y objetos de destino remotos para una interfaz de dispositivo y, a continuación, abrir la interfaz para las operaciones 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 Value
Finalización del soporte técnico No disponible en UMDF 2.0 y versiones posteriores.
Plataforma de destino Escritorio
Versión mínima de UMDF 1,9
Encabezado wudfddi.h (incluya Wudfddi.h)
Archivo DLL WUDFx.dll

Consulte también

IWDFRemoteTarget

IWDFRemoteTarget::OpenFileByName