Compartir a través de


Método IWDFDevice2::CreateRemoteInterface (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 CreateRemoteInterface crea un objeto de interfaz remota que representa una interfaz de dispositivo.

Sintaxis

HRESULT CreateRemoteInterface(
  [in]           IWDFRemoteInterfaceInitialize *pRemoteInterfaceInit,
  [in, optional] IUnknown                      *pCallbackInterface,
  [out]          IWDFRemoteInterface           **ppRemoteInterface
);

Parámetros

[in] pRemoteInterfaceInit

Puntero a una interfaz IWDFRemoteInterfaceInitialize que recibió la función de devolución de llamada IPnpCallbackRemoteInterfaceNotification::OnRemoteInterfaceArrival .

[in, optional] pCallbackInterface

Puntero a una interfaz de devolución de llamada opcional proporcionada por el controlador. El método IUnknown::QueryInterface de esta interfaz debe devolver un puntero a las interfaces IRemoteInterfaceCallbackEvent e IRemoteInterfaceCallbackRemoval del controlador, si el controlador admite esas interfaces. Este parámetro es opcional y puede ser NULL.

[out] ppRemoteInterface

Puntero a una ubicación proporcionada por el controlador que recibe un puntero a la interfaz IWDFRemoteInterface del nuevo objeto de interfaz remota.

Valor devuelto

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

Comentarios

Si el controlador llama a CreateRemoteInterface, debe hacerlo desde su función de devolución de llamada IPnpCallbackRemoteInterfaceNotification::OnRemoteInterfaceArrival .

Para obtener más información sobre CreateRemoteInterface y el uso de interfaces de dispositivo, consulte Uso de interfaces de dispositivo en controladores basados en UMDF.

Ejemplos

En el ejemplo de código siguiente se muestra una función de devolución de llamada IPnpCallbackRemoteInterfaceNotification::OnRemoteInterfaceArrival que crea un objeto de interfaz remota, crea un objeto de destino remoto y abre el destino remoto para las operaciones 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 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

IWDFDevice2

IWDFDevice2::CreateRemoteTarget

IWDFRemoteTarget::OpenRemoteInterface