Méthode IWDFDevice2 ::CreateRemoteInterface (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 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 du pilote a 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 les interfaces IRemoteInterfaceCallbackEvent et IRemoteInterfaceCallbackRemoval du pilote, 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 du nouvel objet d’interface distante.
Valeur retournée
CreateRemoteInterface retourne S_OK si l’opération réussit. Sinon, la méthode peut retourner la valeur suivante :
Code de retour | Description |
---|---|
|
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.
Remarques
Si votre pilote appelle CreateRemoteInterface, il doit le faire à partir de sa fonction de rappel IPnpCallbackRemoteInterfaceNotification ::OnRemoteInterfaceArrival .
Pour plus d’informations sur CreateRemoteInterface et l’utilisation d’interfaces d’appareil, consultez Utilisation d’interfaces de périphérique dans les pilotes basés sur UMDF
Exemples
L’exemple de code suivant montre une fonction de rappel IPnpCallbackRemoteInterfaceNotification ::OnRemoteInterfaceArrival 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;
...
}
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 |