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 info, vedi Introduzione con UMDF.]

Il metodo OpenRemoteInterface apre un'interfaccia del 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 una stringa con terminazione Null fornita dal chiamante 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 nel Windows SDK.

[in, optional] pOpenParams

Puntatore a una struttura 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 da Winerror.h.

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

Commenti

Dopo che la funzione di callback IPnpCallbackRemoteInterfaceNotification::OnRemoteInterfaceArrival riceve una notifica che un'interfaccia del dispositivo è disponibile 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 la 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 Uso di interfacce di dispositivo nei driver basati su UMDF.

Esempio

L'esempio di codice seguente illustra come una funzione di callback IPnpCallbackRemoteInterfaceNotification::OnRemoteInterfaceArrival può creare un'interfaccia remota e oggetti di destinazione remota per un'interfaccia del 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:
...

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

Vedi anche

IWDFRemoteTarget

IWDFRemoteTarget::OpenFileByName