Metodo IWDFDevice2::CreateRemoteInterface (wudfddi.h)
[Avviso: UMDF 2 è la versione più recente di UMDF e sostituisce UMDF 1. Tutti i nuovi driver UMDF devono essere scritti usando UMDF 2. Non vengono aggiunte nuove funzionalità a UMDF 1 ed è disponibile un supporto limitato per UMDF 1 nelle versioni più recenti di Windows 10. I driver di Windows universali devono usare UMDF 2. Per altre info, vedi Introduzione con UMDF.]
Il metodo CreateRemoteInterface crea un oggetto interfaccia remota che rappresenta un'interfaccia del dispositivo.
Sintassi
HRESULT CreateRemoteInterface(
[in] IWDFRemoteInterfaceInitialize *pRemoteInterfaceInit,
[in, optional] IUnknown *pCallbackInterface,
[out] IWDFRemoteInterface **ppRemoteInterface
);
Parametri
[in] pRemoteInterfaceInit
Puntatore a un'interfaccia IWDFRemoteInterfaceInitialize ricevuta dalla funzione di callback IPnpCallbackRemoteInterfaceNotification::OnRemoteInterfaceArrival .
[in, optional] pCallbackInterface
Puntatore a un'interfaccia di callback fornita dal driver facoltativa. Il metodo IUnknown::QueryInterface di questa interfaccia deve restituire un puntatore alle interfacce IRemoteInterfaceCallbackEvent e IRemoteInterfaceCallbackRemoval del driver, se il driver supporta tali interfacce. Questo parametro è facoltativo e può essere NULL.
[out] ppRemoteInterface
Puntatore a una posizione fornita dal driver che riceve un puntatore all'interfaccia IWDFRemoteInterface del nuovo oggetto interfaccia remota.
Valore restituito
CreateRemoteInterface restituisce S_OK se l'operazione ha esito positivo. In caso contrario, il metodo potrebbe restituire il valore seguente:
Codice restituito | Descrizione |
---|---|
|
Il tentativo del framework di allocare memoria non è riuscito. |
Questo metodo potrebbe restituire uno degli altri valori contenuti da Winerror.h.
Commenti
Se il driver chiama CreateRemoteInterface, deve farlo dall'interno della relativa funzione di callback IPnpCallbackRemoteInterfaceNotification::OnRemoteInterfaceArrival .
Per altre informazioni su CreateRemoteInterface e sull'uso delle interfacce di dispositivo, vedere Uso delle interfacce di dispositivo nei driver basati su UMDF
Esempio
Nell'esempio di codice seguente viene illustrata una funzione di callback IPnpCallbackRemoteInterfaceNotification::OnRemoteInterfaceArrival che crea un oggetto interfaccia remota, crea un oggetto di destinazione remoto e apre la destinazione remota per le operazioni di I/O.
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;
...
}
Requisiti
Requisito | Valore |
---|---|
Fine del supporto | Non disponibile in UMDF 2.0 e versioni successive. |
Piattaforma di destinazione | Desktop |
Versione UMDF minima | 1,9 |
Intestazione | wudfddi.h (include Wudfddi.h) |
DLL | WUDFx.dll |