Partager via


IWDFDevice2 ::CreateRemoteInterface, méthode (wudfddi.h)

[Avertissement : UMDF 2 est la dernière version de UMDF et remplace UMDF 1. Tous les nouveaux pilotes UMDF doivent être écrits à l’aide de UMDF 2. Aucune nouvelle fonctionnalité n’est ajoutée à UMDF 1 et il existe une prise en charge limitée de UMDF 1 sur les versions plus récentes de Windows 10. Les pilotes Windows universels doivent utiliser UMDF 2. Pour plus d’informations, consultez Bien démarrer avec UMDF.]

La méthode CreateRemoteInterface crée un objet d’interface distante qui représente une interface d’appareil .

Syntaxe

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

Paramètres

[in] pRemoteInterfaceInit

Pointeur vers une interface IWDFRemoteInterfaceInitialize que la fonction de rappel IPnpCallbackRemoteInterfaceNotification ::OnRemoteInterfaceArrival fonction de rappel reçue.

[in, optional] pCallbackInterface

Pointeur vers une interface de rappel facultative fournie par le pilote. La méthode IUnknown ::QueryInterface de cette interface doit retourner un pointeur vers le IRemoteInterfaceCallbackEvent et interfaces IRemoteInterfaceCallbackRemoval, si le pilote prend en charge ces interfaces. Ce paramètre est facultatif et peut être NULL.

[out] ppRemoteInterface

Pointeur vers un emplacement fourni par le pilote qui reçoit un pointeur vers l’interface IWDFRemoteInterface de l’objet d’interface distante.

Valeur de retour

CreateRemoteInterface retourne S_OK si l’opération réussit. Sinon, la méthode peut retourner la valeur suivante :

Retourner le code Description
E_OUTOFMEMORY
Échec de la tentative de l’infrastructure d’allouer de la mémoire.
 

Cette méthode peut retourner l’une des autres valeurs que Winerror.h contient.

Remarques

Si votre pilote appelle CreateRemoteInterface, il doit le faire à partir de son IPnpCallbackRemoteInterfaceNotification ::OnRemoteInterfaceArrival fonction de rappel.

Pour plus d’informations sur createRemoteInterface et l’utilisation d’interfaces d’appareil, consultez Using Device Interfaces in UMDF-based Drivers

Exemples

L’exemple de code suivant montre un IPnpCallbackRemoteInterfaceNotification ::OnRemoteInterfaceArrival fonction de rappel qui crée un objet d’interface distante, crée un objet cible distant et ouvre la cible distante pour les opérations d’E/S.

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

Exigences

Exigence Valeur
fin du support Indisponible dans UMDF 2.0 et versions ultérieures.
plateforme cible Bureau
version minimale de UMDF 1.9
d’en-tête wudfddi.h (include Wudfddi.h)
DLL WUDFx.dll

Voir aussi

IWDFDevice2

IWDFDevice2 ::CreateRemoteTarget

IWDFRemoteTarget ::OpenRemoteInterface