Vous voulez vérifier cet article msdn:
http://msdn.microsoft.com/en-us/library/bb742655.aspx
Plus précisément, procédez comme suit:
Call SetupDiGetDeviceRegistryProperty to retrieve the size, in bytes, of the property value. Supply the following parameter values:
Set DeviceInfoSet to a handle to a device information set that contains the device instance for which to retrieve the requested property value.
Set DeviceInfoData to a pointer to an SP_DEVINFO_DATA structure that represents the device instance for which to retrieve the requested property value.
Set Property to an SPDRP_Xxx identifier. For a list of these identifiers and a description of the corresponding device properties, see the description of the Property parameter that is included with SetupDiSetDeviceRegistryProperty.
Set PropertyRegDataType to a pointer to a DWORD-typed variable.
Set PropertyBuffer to NULL.
Set PropertyBufferSize to zero.
Set RequiredSize to a pointer to a DWORD-typed variable that receives, the size, in bytes of the property value.
In response to the call to SetupDiSetDeviceRegistryProperty, SetupDiGetDeviceRegistryProperty sets *RequiredSize to the size, in bytes, of the buffer that is required to retrieve the property value, logs the error code ERROR_INSUFFICIENT_BUFFER, and returns FALSE. A subsequent call to GetLastError will return the most recently logged error code.
Call SetupDiGetDeviceRegistryProperty again and supply the same parameter values that were supplied in the first call, except for the following changes:
Set PropertyBuffer à un pointeur vers un BYTE tampon -typed qui reçoit la valeur de propriété demandée. Définissez PropertyBufferSize sur la taille, en octets, du buffer PropertyBuffer. Le premier appel à SetupDiGetDeviceRegistryProperty a récupéré la taille requise du tampon PropertyBuffer dans * RequiredSize. Ce lien montre comment accéder au point où vous avez les structures requises pour appeler SetupDiGetDeviceRegistryProperty.
http://www.pinvoke.net/default.aspx/setupapi/SetupDiEnumDeviceInfo.html
Hi! Merci pour votre réponse. J'ai regardé le lien MSDN que vous avez affiché. Est-ce que les étapes seraient également valables pour Windows Vista? Raison que je demande est que je voudrais que mon programme fonctionne sur Windows XP ainsi que Vista. Merci! –
La plupart des étapes seraient les mêmes, à l'exception des 3 méthodes mentionnées dans le lien VISTA: – chollida
Hi! Merci. Je pense que j'ai réussi à mettre en place les infodonnées correctement. Lors du débogage, j'obtiens un cbsize de 28 lorsque je le mets manuellement. Cela ressemble-t-il à une valeur correcte (je ne suis pas familier avec les nombres considérés comme «normaux»). En outre, j'ai défini l'argument GUI dans SetupDiCreateDeviceInfo sur NULL. C'est bon, oui? Puisque l'argument est optionnel. De là, je ne suis pas sûr de quoi définir l'identifiant SPDRP_Xxx à. J'ai regardé les propriétés et aucune ne semble avoir l'information dont j'ai besoin pour récupérer le GPU. Merci encore pour votre aide! –