Condividi tramite


Metodo IWDFRemoteTarget::OpenRemoteInterface (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 informazioni, vedi Introduzione a UMDF.]

Il metodo OpenRemoteInterface apre un'interfaccia di dispositivo in modo che il driver possa inviare richieste di I/O.

Sintassi

HRESULT OpenRemoteInterface(
  [in]           IWDFRemoteInterface         *pRemoteInterface,
  [in, optional] PCWSTR                      pszRelativeFileName,
  [in]           DWORD                       DesiredAccess,
  [in, optional] PUMDF_IO_TARGET_OPEN_PARAMS pOpenParams
);

Parametri

[in] pRemoteInterface

Puntatore a un'interfaccia IWDFRemoteInterface ottenuta dal driver da una chiamata precedente a IWDFDevice2::CreateRemoteInterface.

[in, optional] pszRelativeFileName

Puntatore facoltativo a un chiamante fornito, nullstringa terminata che il framework aggiunge al nome di collegamento simbolico dell'interfaccia del dispositivo.

[in] DesiredAccess

Maschera di bit che specifica l'accesso desiderato del chiamante al file. Per altre informazioni su questo membro, vedere il parametro DesiredAccess di CreateFile in Windows SDK.

[in, optional] pOpenParams

Puntatore a una struttura di UMDF_IO_TARGET_OPEN_PARAMS allocata dal chiamante che contiene parametri aggiuntivi. Questo parametro è facoltativo e può essere NULL.

Valore restituito

OpenRemoteInterface restituisce S_OK se l'operazione ha esito positivo. In caso contrario, il metodo potrebbe restituire il valore seguente:

Codice restituito Descrizione
E_OUTOFMEMORY
Il tentativo del framework di allocare memoria non è riuscito.
 

Questo metodo potrebbe restituire uno degli altri valori contenuti in Winerror.h.

Il verificatore del framework segnala un errore se il framework non è in grado di aprire il file.

Osservazioni

Dopo IPnpCallbackRemoteInterfaceNotification::OnRemoteInterfaceArrival funzione di callback di un driver riceve la notifica che è disponibile un'interfaccia del dispositivo e dopo che il driver chiama IWDFDevice2::CreateRemoteInterface per creare un oggetto interfaccia remota, il driver può chiamare OpenRemoteInterface in modo che possa inviare richieste di I/O all'interfaccia del dispositivo.

L'interfaccia del dispositivo deve essere accessibile dall'account che ha caricato il driver basato su UMDF, che in genere è l'account del servizio locale. Tuttavia, se il driver usa rappresentazione quando chiama OpenRemoteInterface, l'interfaccia del dispositivo deve essere accessibile dall'account rappresentato.

Per altre informazioni su OpenRemoteInterface e su come usare le interfacce di dispositivo nei driver basati su UMDF, vedere Using Device Interfaces in UMDF-based Drivers.

Esempi

Nell'esempio di codice seguente viene illustrato come una IPnpCallbackRemoteInterfaceNotification::OnRemoteInterfaceArrival funzione di callback può creare un'interfaccia remota e oggetti di destinazione remota per un'interfaccia dispositivo e quindi aprire l'interfaccia per le operazioni di I/O.

void 
STDMETHODCALLTYPE
CMyDevice::OnRemoteInterfaceArrival(
    __in IWDFRemoteInterfaceInitialize * FxRemoteInterfaceInit
    )
...
    HRESULT hr;
    CComPtr<IWDFRemoteInterface> fxRemoteInterface;
    CComPtr<IWDFRemoteTarget> m_FxTarget;

    hr = m_FxDevice->CreateRemoteInterface(FxRemoteInterfaceInit, 
                                           NULL, 
                                           &fxRemoteInterface);
    if (FAILED(hr)) goto Error;
    hr = FxDevice->CreateRemoteTarget(unknown,
                                      fxRemoteInterface,
                                      &m_FxTarget);
    if (FAILED(hr)) goto Error;
    hr = m_FxTarget->OpenRemoteInterface(fxRemoteInterface, 
                                         NULL,
                                         GENERIC_READ | GENERIC_WRITE,
                                         NULL);
...
Error:
...

Fabbisogno

Requisito Valore
Fine del supporto Non disponibile in UMDF 2.0 e versioni successive.
piattaforma di destinazione Desktop
versione minima di UMDF 1.9
intestazione wudfddi.h (include Wudfddi.h)
dll WUDFx.dll

Vedere anche

IWDFRemoteTarget

IWDFRemoteTarget::OpenFileByName