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 nuevos controladores UMDF deben escribirse mediante 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 a 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 y IRemoteInterfaceCallbackRemoval, si el controlador admite esas interfaces. Este parámetro es opcional y se puede NULL.

[out] ppRemoteInterface

Puntero a una ubicación proporcionada por el controlador que recibe un puntero al IWDFRemoteInterface interfaz 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.

Observaciones

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 Using Device Interfaces in UMDF-based Drivers

Ejemplos

En el ejemplo de código siguiente se muestra un IPnpCallbackRemoteInterfaceNotification::OnRemoteInterfaceArrival función de devolución de llamada 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 Valor
fin del soporte técnico No disponible en UMDF 2.0 y versiones posteriores.
de la plataforma de destino de Escritorio
versión mínima de UMDF 1.9
encabezado de wudfddi.h (incluya Wudfddi.h)
DLL de WUDFx.dll

Consulte también

IWDFDevice2

IWDFDevice2::CreateRemoteTarget

IWDFRemoteTarget::OpenRemoteInterface