Fonction SetupDiGetDeviceInterfaceDetailA (setupapi.h)

La fonction SetupDiGetDeviceInterfaceDetail retourne des détails sur une interface d’appareil.

Syntaxe

WINSETUPAPI BOOL SetupDiGetDeviceInterfaceDetailA(
  [in]            HDEVINFO                           DeviceInfoSet,
  [in]            PSP_DEVICE_INTERFACE_DATA          DeviceInterfaceData,
  [out, optional] PSP_DEVICE_INTERFACE_DETAIL_DATA_A DeviceInterfaceDetailData,
  [in]            DWORD                              DeviceInterfaceDetailDataSize,
  [out, optional] PDWORD                             RequiredSize,
  [out, optional] PSP_DEVINFO_DATA                   DeviceInfoData
);

Paramètres

[in] DeviceInfoSet

Pointeur vers le jeu d’informations sur l’appareil qui contient l’interface pour laquelle récupérer les détails. 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 dans DeviceInfoSet pour laquelle récupérer les détails. Un pointeur de ce type est généralement retourné par SetupDiEnumDeviceInterfaces.

[out, optional] DeviceInterfaceDetailData

Un pointeur vers une structure de SP_DEVICE_INTERFACE_DETAIL_DATA pour recevoir des informations sur l’interface spécifiée. Ce paramètre est facultatif et peut être NULL. Ce paramètre doit avoir la valeur NULL si DeviceInterfaceDetailSize est égal à zéro. Si ce paramètre est spécifié, l’appelant doit définir DeviceInterfaceDetailData.cbSize sur sizeof(SP_DEVICE_INTERFACE_DETAIL_DATA) avant d’appeler cette fonction. Le membre cbSize contient toujours la taille de la partie fixe de la structure de données, et non une taille reflétant la chaîne de longueur variable à la fin.

[in] DeviceInterfaceDetailDataSize

Taille de la mémoire tampon DeviceInterfaceDetailData . La mémoire tampon doit contenir au moins (offsetof(SP_DEVICE_INTERFACE_DETAIL_DATA, DevicePath) + sizeof(TCHAR)) octets, pour contenir la partie fixe de la structure et une seule valeur NULL pour terminer une chaîne de MULTI_SZ vide.

Ce paramètre doit être égal à zéro si DeviceInterfaceDetailData a la valeurNULL.

[out, optional] RequiredSize

Pointeur vers une variable de type DWORD qui reçoit la taille requise de la mémoire tampon DeviceInterfaceDetailData . Cette taille inclut la taille de la partie fixe de la structure plus le nombre d’octets requis pour la chaîne de chemin d’accès de l’appareil de longueur variable. Ce paramètre est facultatif et peut être NULL.

[out, optional] DeviceInfoData

Pointeur vers une mémoire tampon qui reçoit des informations sur l’appareil qui prend en charge l’interface demandée. L’appelant doit définir DeviceInfoData.cbSize sur sizeof(SP_DEVINFO_DATA). Ce paramètre est facultatif et peut être NULL.

Valeur retournée

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

Remarques

L’utilisation de cette fonction pour obtenir des détails sur une interface est généralement un processus en deux étapes :

  1. Obtenez la taille de mémoire tampon requise. Appelez SetupDiGetDeviceInterfaceDetail avec un pointeur Null DeviceInterfaceDetailData, un DeviceInterfaceDetailDataSize de zéro et une variable RequiredSize valide. En réponse à un tel appel, cette fonction retourne la taille de mémoire tampon requise dans RequiredSize et échoue lorsque GetLastError retourne ERROR_INSUFFICIENT_BUFFER.
  2. Allouez une mémoire tampon de taille appropriée et appelez à nouveau la fonction pour obtenir les détails de l’interface.
Le détail de l’interface retourné par cette fonction se compose d’un chemin d’appareil qui peut être passé à des fonctions Win32 telles que CreateFile. N’essayez pas d’analyser le nom symbolique du chemin d’accès de l’appareil. Le chemin d’accès de l’appareil peut être réutilisé entre les démarrages système.

SetupDiGetDeviceInterfaceDetail peut être utilisé pour obtenir uniquement deviceInfoData. Si l’interface existe mais que DeviceInterfaceDetailData a la valeur NULL, cette fonction échoue, GetLastError retourne ERROR_INSUFFICIENT_BUFFER et la structure DeviceInfoData est remplie d’informations sur l’appareil qui expose l’interface.

Notes

L’en-tête setupapi.h définit SetupDiGetDeviceInterfaceDetail comme un 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.

Configuration requise

   
Client minimal pris en charge Disponible dans Microsoft Windows 2000 et versions ultérieures de Windows.
Plateforme cible Bureau
En-tête setupapi.h (inclure Setupapi.h)
Bibliothèque Setupapi.lib

Voir aussi

SetupDiEnumDeviceInterfaces

SetupDiGetClassDevs