structure SP_DRVINFO_DETAIL_DATA_A (setupapi.h)
Une structure SP_DRVINFO_DETAIL_DATA contient des informations détaillées sur une structure d’informations de pilote particulière.
Syntaxe
typedef struct _SP_DRVINFO_DETAIL_DATA_A {
DWORD cbSize;
FILETIME InfDate;
DWORD CompatIDsOffset;
DWORD CompatIDsLength;
ULONG_PTR Reserved;
CHAR SectionName[LINE_LEN];
CHAR InfFileName[MAX_PATH];
CHAR DrvDescription[LINE_LEN];
CHAR HardwareID[ANYSIZE_ARRAY];
} SP_DRVINFO_DETAIL_DATA_A, *PSP_DRVINFO_DETAIL_DATA_A;
Membres
cbSize
Taille, en octets, de la structure SP_DRVINFO_DETAIL_DATA.
InfDate
Date du fichier INF de ce pilote.
CompatIDsOffset
Décalage, en caractères, à partir du début du HardwareID tampon où commence la liste CompatIDs.
Cette valeur peut également être utilisée pour déterminer s’il existe un ID matériel qui précède la liste CompatIDs. Si cette valeur est supérieure à 1, la première chaîne du HardwareID tampon est l’ID matériel. Si cette valeur est inférieure ou égale à 1, il n’existe aucun ID matériel.
CompatIDsLength
Longueur, en caractères, de la liste CompatIDs commençant à offset
Si CompatIDsLength n’est pas zéro, la liste CompatIDs contient une ou plusieurs chaînes terminées par NULL avec un caractère NULL supplémentaire à la fin de la liste.
Si CompatIDsLength est égal à zéro, la liste CompatIDs est vide. Dans ce cas, il n’existe aucun caractère NULL supplémentaire à la fin de la liste.
Reserved
Réservé. Pour une utilisation interne uniquement.
SectionName[LINE_LEN]
Chaîne terminée par NULL qui contient le nom de la section INF DDInstall pour ce pilote. Il doit s’agir du nom de section de base DDInstall, tel que InstallSec, sans extensions spécifiques au système d’exploitation/architecture.
InfFileName[MAX_PATH]
Chaîne terminée par NULL qui contient le nom complet du fichier INF pour ce pilote.
DrvDescription[LINE_LEN]
Chaîne terminée par NULL qui décrit le pilote.
HardwareID[ANYSIZE_ARRAY]
Mémoire tampon qui contient une liste d’ID (id matériel unique suivi d’une liste d’ID compatibles ). Ces ID correspondent à l’ID matériel et aux ID compatibles dans la section modèles INF .
Chaque ID de la liste est une chaîne terminée par NULL.
Si l’ID matériel existe (autrement dit, si CompatIDsOffset est supérieur à un), cette seule chaîne terminée par NULL est trouvée au début de la mémoire tampon.
Si la liste CompatIDs n’est pas vide (autrement dit, si CompatIDsLength n’est pas zéro), la liste CompatIDs démarre au décalage CompatIDsOffset à partir du début de cette mémoire tampon et se termine par un caractère NULL supplémentaire à la fin de la liste.
Remarques
L’ID matériel et les ID compatibles pour un appareil sont spécifiés dans la section modèles INF dans l’ordre suivant :
- Le premier ID (s’il est spécifié) est l’ID matériel de l’appareil.
- Les ID restants (s’ils sont spécifiés) sont des ID compatibles pour l’appareil.
Par exemple, selon la façon dont la liste des ID matériels
- \0
- <HWID>\0
- <HWID>\0<COMPATID_1>\0...<COMPATID_N>\0\0
- \0<COMPATID_1>\0...<COMPATID_N>\0\0
// parse the hardware ID, if it exists
if (CompatIDsOffset > 1)
{
// Parse for hardware ID from index 0.
// This is a single NULL-terminated string
}
// Parse the compatible IDs, if they exist
if (CompatIDsLength > 0)
{
// Parse for list of compatible IDs from CompatIDsOffset.
// This is a double NULL-terminated list of strings (i.e. MULTI-SZ)
}
Note
L’en-tête setupapi.h définit SP_DRVINFO_DETAIL_DATA 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 |
---|---|
d’en-tête | setupapi.h (include Setupapi.h) |
Voir aussi
section modèles INF