SetupDiGetDeviceInterfaceAlias, fonction (setupapi.h)
La fonction SetupDiGetDeviceInterfaceAlias retourne un alias d’une interface d’appareil spécifiée.
Syntaxe
WINSETUPAPI BOOL SetupDiGetDeviceInterfaceAlias(
[in] HDEVINFO DeviceInfoSet,
[in] PSP_DEVICE_INTERFACE_DATA DeviceInterfaceData,
[in] const GUID *AliasInterfaceClassGuid,
[out] PSP_DEVICE_INTERFACE_DATA AliasDeviceInterfaceData
);
Paramètres
[in] DeviceInfoSet
Pointeur vers le jeu d’informations sur l’appareil qui contient l’interface de l’appareil pour laquelle récupérer un alias. Ce handle est généralement retourné par SetupDiGetClassDevs.
[in] DeviceInterfaceData
Pointeur vers une structure de SP_DEVICE_INTERFACE_DATA qui spécifie l’interface d’appareil dans DeviceInfoSet pour laquelle récupérer un alias. Ce pointeur est généralement retourné par SetupDiEnumDeviceInterfaces.
[in] AliasInterfaceClassGuid
Pointeur vers un GUID qui spécifie la classe d’interface de l’alias à récupérer.
[out] AliasDeviceInterfaceData
Pointeur vers une mémoire tampon allouée à l’appelant qui contient, en cas de retour réussi, une structure de SP_DEVICE_INTERFACE_DATA terminée qui identifie l’alias demandé. L’appelant doit définir AliasDeviceInterfaceData.cbSize sur sizeof(SP_DEVICE_INTERFACE_DATA) avant d’appeler cette fonction.
Valeur retournée
SetupDiGetDeviceInterfaceAlias retourne TRUE si la fonction s’est terminée sans erreur. Si la fonction s’est terminée avec une erreur, FALSE est retourné et le code d’erreur de l’échec peut être récupéré en appelant GetLastError.
Les erreurs possibles retournées par GetLastError sont répertoriées dans le tableau suivant.
Code de retour | Description |
---|---|
|
Paramètre DeviceInfoSet ou DeviceInterfaceData non valide. |
|
Il n’existe aucun alias de classe AliasInterfaceClassGuid pour l’interface d’appareil spécifiée. |
|
Mémoire tampon AliasDeviceInterfaceData non valide. |
Remarques
Les interfaces d’appareil sont considérées comme des alias si elles sont de classes d’interface différentes, mais sont prises en charge par le même appareil et ont des chaînes de référence identiques.
SetupDiGetDeviceInterfaceAlias peut être utilisé pour localiser un appareil qui expose plusieurs interfaces. Par exemple, considérez un disque qui peut faire partie d’un volume à tolérance de panne et qui peut contenir des données chiffrées. Le pilote de fonction pour le périphérique de disque peut inscrire une interface de volume à tolérance de panne et une interface de volume chiffré. Ces interfaces sont des alias d’interface de périphérique si le pilote de fonction les inscrit avec des chaînes de référence identiques et qu’elles font référence au même appareil. (Les chaînes de référence seront probablement NULL et sont donc égales.)
Pour localiser un tel appareil multi-interface, recherchez d’abord tous les appareils disponibles qui exposent l’une des interfaces, comme l’interface de volume à tolérance de panne, à l’aide de SetupDiGetClassDevs et SetupDiEnumDeviceInterfaces. Ensuite, passez un appareil avec la première interface (volume à tolérance de panne) à SetupDiGetDeviceInterfaceAlias et demandez un alias de l’autre classe d’interface (encrypted-volume).
Si l’alias demandé existe mais que la mémoire tampon AliasDeviceInterfaceData fournie par l’appelant n’est pas valide, cette fonction ajoute correctement l’élément d’interface de périphérique à DevInfoSet , mais retourne FALSE pour la valeur de retour. Dans ce cas, GetLastError retourne ERROR_INVALID_USER_BUFFER.
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Disponible dans Microsoft Windows 2000 et versions ultérieures de Windows. |
Plateforme cible | Desktop (Expérience utilisateur) |
En-tête | setupapi.h (inclure Setupapi.h) |
Bibliothèque | Setupapi.lib |
DLL | Setupapi.dll |