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. Es werden keine neuen Features zu UMDF 1 hinzugefügt, und es gibt eingeschränkte Unterstützung für UMDF 1 für neuere Versionen von Windows 10. 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äteschnittstelledarstellt.

Syntax

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

Parameter

[in] pRemoteInterfaceInit

Ein Zeiger auf eine IWDFRemoteInterfaceInitialize Schnittstelle, die vom Treiber IPnpCallbackRemoteInterfaceNotification::OnRemoteInterfaceArrival empfangene Rückruffunktion empfangen wurde.

[in, optional] pCallbackInterface

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

[out] ppRemoteInterface

Ein Zeiger auf eine vom Treiber bereitgestellte Position, die 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.

Bemerkungen

Wenn Ihr Treiber CreateRemoteInterface-aufruft, muss dies innerhalb der IPnpCallbackRemoteInterfaceNotification::OnRemoteInterfaceArrival Rückruffunktion erfolgen.

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
Mindest-UMDF-Version 1.9
Header- wudfddi.h (include Wudfddi.h)
DLL- WUDFx.dll

Siehe auch

IWDFDevice2-

IWDFDevice2::CreateRemoteTarget

IWDFRemoteTarget::OpenRemoteInterface