Partager via


IWDFRemoteTarget ::OpenRemoteInterface, 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 OpenRemoteInterface ouvre une interface d’appareil afin que le pilote puisse y 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 obtenue par le pilote à partir d’un appel précédent à IWDFDevice2 ::CreateRemoteInterface.

[in, optional] pszRelativeFileName

Pointeur facultatif vers un appelant fourni, chaîne null-terminated string 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 Kit de développement logiciel (SDK) Windows.

[in, optional] pOpenParams

Pointeur vers une structure 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 de retour

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

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

Remarques

Une fois qu’un pilote IPnpCallbackRemoteInterfaceNotification ::OnRemoteInterfaceArrival fonction de rappel reçoit une notification indiquant qu’une interface d’appareil est disponible et après 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 basé sur UMDF, qui est généralement le compte de service local. Toutefois, si le pilote utilise 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 d’interfaces d’appareil dans des pilotes basés sur UMDF, consultez Utilisation des interfaces de périphérique dans les pilotes basés sur UMDF.

Exemples

L’exemple de code suivant montre comment une fonction de rappel IPnpCallbackRemoteInterfaceNotification ::OnRemoteInterfaceArrival fonction de rappel 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:
...

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

IWDFRemoteTarget

IWDFRemoteTarget ::OpenFileByName