Freigeben über


IWDFDevice2::CreateRemoteInterface-Methode (wudfddi.h)

[Warnung: UMDF 2 ist die neueste Version von UMDF und ersetzt UMDF 1. Alle neuen UMDF-Treiber sollten mit UMDF 2 geschrieben werden. UMDF 1 werden keine neuen Features hinzugefügt, und die Unterstützung für UMDF 1 in neueren Versionen von Windows 10 ist eingeschränkt. Universelle Windows-Treiber müssen UMDF 2 verwenden. Weitere Informationen finden Sie unter Erste Schritte mit UMDF.]

Die CreateRemoteInterface-Methode erstellt ein Remoteschnittstellenobjekt, das eine Geräteschnittstelle darstellt.

Syntax

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

Parameter

[in] pRemoteInterfaceInit

Ein Zeiger auf eine IWDFRemoteInterfaceInitialize-Schnittstelle , die die Rückruffunktion IPnpCallbackRemoteInterfaceNotification::OnRemoteInterfaceArrival des Treibers empfangen hat.

[in, optional] pCallbackInterface

Ein Zeiger auf eine optionale, vom Treiber bereitgestellte Rückrufschnittstelle. Die IUnknown::QueryInterface-Methode dieser Schnittstelle muss einen Zeiger auf die Schnittstellen IRemoteInterfaceCallbackEvent und IRemoteInterfaceCallbackRemoval des Treibers zurückgeben, wenn der Treiber diese Schnittstellen unterstützt. Dieser Parameter ist optional und kann NULL sein.

[out] ppRemoteInterface

Ein Zeiger auf einen vom Treiber bereitgestellten Speicherort, der einen Zeiger auf die IWDFRemoteInterface-Schnittstelle des neuen Remoteschnittstellenobjekts empfängt.

Rückgabewert

CreateRemoteInterface gibt S_OK zurück, wenn der Vorgang erfolgreich ist. Andernfalls gibt die -Methode möglicherweise den folgenden Wert zurück:

Rückgabecode Beschreibung
E_OUTOFMEMORY
Fehler beim Versuch des Frameworks, Arbeitsspeicher zuzuweisen.
 

Diese Methode gibt möglicherweise einen der anderen Werte zurück, die Winerror.h enthält.

Hinweise

Wenn Ihr Treiber CreateRemoteInterface aufruft, muss er dies innerhalb seiner IPnpCallbackRemoteInterfaceNotification::OnRemoteInterfaceArrival-Rückruffunktion tun.

Weitere Informationen zu CreateRemoteInterface und zum Verwenden von Geräteschnittstellen finden Sie unter Verwenden von Geräteschnittstellen in UMDF-basierten Treibern.

Beispiele

Das folgende Codebeispiel zeigt eine IPnpCallbackRemoteInterfaceNotification::OnRemoteInterfaceArrival-Rückruffunktion , die ein Remoteschnittstellenobjekt erstellt, ein Remotezielobjekt erstellt und das Remoteziel für E/A-Vorgänge öffnet.

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;
...
}

Anforderungen

Anforderung Wert
Ende des Supports In UMDF 2.0 und höher nicht verfügbar.
Zielplattform Desktop
UMDF-Mindestversion 1.9
Kopfzeile wudfddi.h (include Wudfddi.h)
DLL WUDFx.dll

Weitere Informationen

IWDFDevice2

IWDFDevice2::CreateRemoteTarget

IWDFRemoteTarget::OpenRemoteInterface