Partager via


Méthode IWDFRemoteTarget ::OpenRemoteInterface (wudfddi.h)

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

La méthode OpenRemoteInterface ouvre une interface de périphérique afin que le pilote puisse lui envoyer des demandes d’E/S.

Syntaxe

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

Paramètres

[in] pRemoteInterface

Pointeur vers une interface IWDFRemoteInterface que le pilote a obtenue à partir d’un appel précédent à IWDFDevice2 ::CreateRemoteInterface.

[in, optional] pszRelativeFileName

Pointeur facultatif vers une chaîne null fournie par l’appelant, que l’infrastructure ajoute au nom de lien symbolique de l’interface de l’appareil.

[in] DesiredAccess

Masque de bits qui spécifie l’accès souhaité de l’appelant au fichier. Pour plus d’informations sur ce membre, consultez le paramètre DesiredAccess de CreateFile dans le SDK Windows.

[in, optional] pOpenParams

Pointeur vers une structure de UMDF_IO_TARGET_OPEN_PARAMS allouée par l’appelant qui contient des paramètres supplémentaires. Ce paramètre est facultatif et peut être NULL.

Valeur retournée

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

Code de retour Description
E_OUTOFMEMORY
La tentative d’allocation de mémoire de l’infrastructure a échoué.
 

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

Le vérificateur de l’infrastructure signale une erreur si l’infrastructure ne peut pas ouvrir le fichier.

Remarques

Une fois que la fonction de rappel IPnpCallbackRemoteInterfaceNotification ::OnRemoteInterfaceArrival d’un pilote reçoit une notification indiquant qu’une interface d’appareil est disponible et que le pilote appelle IWDFDevice2 ::CreateRemoteInterface pour créer un objet d’interface distante, le pilote peut appeler OpenRemoteInterface afin qu’il puisse envoyer des demandes d’E/S à l’interface de l’appareil.

L’interface de l’appareil doit être accessible par le compte qui a chargé le pilote UMDF, qui est généralement le compte de service local. Toutefois, si le pilote utilise l’emprunt d’identité lorsqu’il appelle OpenRemoteInterface, l’interface de l’appareil doit être accessible par le compte emprunt d’identité.

Pour plus d’informations sur OpenRemoteInterface et sur l’utilisation des interfaces d’appareil dans les pilotes basés sur UMDF, consultez Utilisation d’interfaces d’appareil dans les pilotes basés sur UMDF.

Exemples

L’exemple de code suivant montre comment une fonction de rappel IPnpCallbackRemoteInterfaceNotification ::OnRemoteInterfaceArrival peut créer une interface distante et des objets cibles distants pour une interface d’appareil, puis ouvrir l’interface pour les opérations d’E/S.

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:
...

Configuration requise

Condition requise Valeur
Fin de la prise en charge Non disponible dans UMDF 2.0 et versions ultérieures.
Plateforme cible Desktop (Expérience utilisateur)
Version UMDF minimale 1,9
En-tête wudfddi.h (inclure Wudfddi.h)
DLL WUDFx.dll

Voir aussi

IWDFRemoteTarget

IWDFRemoteTarget ::OpenFileByName