Partager via


SetupDiOpenDeviceInterfaceA, fonction (setupapi.h)

La fonction SetupDiOpenDeviceInterface récupère des informations sur une interface d’appareil et ajoute l’interface au jeu d’informations d’appareil spécifié pour un système local ou un système distant.

Syntaxe

WINSETUPAPI BOOL SetupDiOpenDeviceInterfaceA(
  [in]            HDEVINFO                  DeviceInfoSet,
  [in]            PCSTR                     DevicePath,
  [in]            DWORD                     OpenFlags,
  [out, optional] PSP_DEVICE_INTERFACE_DATA DeviceInterfaceData
);

Paramètres

[in] DeviceInfoSet

Pointeur vers un jeu d’informations d’appareil qui contient, ou contiendra, un élément d’informations d’appareil qui représente l’appareil qui prend en charge l’interface à ouvrir.

[in] DevicePath

Pointeur vers une chaîne terminée par NULL qui fournit le nom de l’interface de l’appareil à ouvrir. Ce nom est un chemin d’accès d’appareil Win32 qui est généralement reçu dans une structure de notification PnP ou obtenu par un appel précédent à SetupDiEnumDeviceInterfaces et ses fonctions associées.

[in] OpenFlags

Indicateurs qui déterminent la façon dont l’élément d’interface de l’appareil doit être ouvert. Le seul indicateur valide est le suivant :

DIODI_NO_ADD

Spécifie que l’élément d’informations d’appareil pour l’appareil sous-jacent ne sera pas créé si cet élément n’est pas déjà présent dans le jeu d’informations d’appareil spécifié. Pour plus d’informations, consultez la section suivante Remarques.

[out, optional] DeviceInterfaceData

Pointeur vers une structure d'SP_DEVICE_INTERFACE_DATA initialisée par l’appelant qui reçoit les données d’interface demandées. Ce pointeur est facultatif et peut être NULL. Si une mémoire tampon est fournie, l’appelant doit définir le membre cbSize de la structure sur sizeof(SP_DEVICE_INTERFACE_DATA) avant d’appeler SetupDiOpenDeviceInterface. Pour plus d’informations, consultez la section suivante Remarques.

Valeur de retour

SetupDiOpenDeviceInterface retourne TRUE si la fonction s’est terminée sans erreur. Si la fonction s’est terminée avec une erreur, elle retourne faux et le code d’erreur de l’échec peut être récupéré en appelant GetLastError.

Remarques

Si un élément d’interface d’appareil pour l’interface existe déjà dans DeviceInfoSet, SetupDiOpenDeviceInterface met à jour les indicateurs. Par conséquent, cette fonction peut être utilisée pour mettre à jour les indicateurs d’une interface d’appareil. Par exemple, une interface a peut-être été inactive lorsqu’elle a été ouverte pour la première fois, mais elle est devenue active par la suite. Si l’élément d’informations sur l’appareil sous-jacent n’est pas déjà présent dans DeviceInfoSet, cette fonction en crée une et l’ajoute à DeviceInfoSet.

Si la fonction ouvre correctement la nouvelle interface d’appareil, mais que l’appelant n’a pas fourni de structure valide dans le paramètre DeviceInterfaceData, la fonction retourne FALSE et un appel ultérieur à GetLastError retourne ERROR_INVALID_USER_BUFFER. Toutefois, dans ce cas, SetupDiOpenDeviceInterface ajoute l’interface demandée au jeu d’informations de l’appareil.

Si la nouvelle interface d’appareil est correctement ouverte, mais que l’appelant DeviceInterfaceData tampon n’est pas valide, cette fonction retourne FALSE et GetLastError retourne ERROR_INVALID_USER_BUFFER. L’erreur de mémoire tampon de l’appelant n’empêche pas l’interface d’être ouverte.

Si l’indicateur DIODI_NO_ADD est spécifié pour le paramètre OpenFlags et qu’un élément d’informations sur l’appareil sous-jacent n’est pas déjà présent dans le jeu d’informations d’appareil spécifié, cette fonction retourne FAUX et GetLastError retourne ERROR_NO_SUCH_DEVICE_INTERFACE.

Une fois l’application terminée à l’aide des informations qui SetupDiOpenDeviceInterface récupérées, l’application doit appeler SetupDiDeleteDeviceInterfaceData.

MF_DEVSOURCE_ATTRIBUTE_SOURCE_TYPE_VIDCAP_SYMBOLIC_LINK attribut peut être transmis en tant que valeur de l’argument DevicePath de la fonction SetupDiOpenDeviceInterface.

Note

L’en-tête setupapi.h définit SetupDiOpenDeviceInterface en tant qu’alias qui sélectionne automatiquement la version ANSI ou Unicode de cette fonction en fonction de la définition de la constante de préprocesseur UNICODE. Le mélange de l’utilisation de l’alias neutre en encodage avec du code qui n’est pas neutre en encodage peut entraîner des incompatibilités qui entraînent des erreurs de compilation ou d’exécution. Pour plus d’informations, consultez Conventions pour les prototypes de fonction.

Exigences

Exigence Valeur
client minimum pris en charge Disponible dans Microsoft Windows 2000 et versions ultérieures de Windows.
plateforme cible Bureau
d’en-tête setupapi.h (include Setupapi.h)
bibliothèque Setupapi.lib

Voir aussi

SetupDiDeleteDeviceInterfaceData

SetupDiEnumDeviceInterfaces