structure SP_DRVINFO_DETAIL_DATA_A (setupapi.h)
Une structure de 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 pour ce pilote.
CompatIDsOffset
Décalage, en caractères, du début de la mémoire tampon HardwareID 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 de la mémoire tampon HardwareID 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 à décaler CompatIDsOffset par le début de la mémoire tampon HardwareID .
Si CompatIDsLength est différent de zéro, la liste CompatIDs contient une ou plusieurs chaînes null terminées 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’y a pas de caractère NULL supplémentaire à la fin de la liste.
Reserved
Réservé. À usage 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 la section DDInstall de base, par exemple InstallSec, sans aucune extension spécifique au système d’exploitation/à l’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 (un 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 chaîne null unique se trouve au début de la mémoire tampon.
Si la liste CompatIDs n’est pas vide (autrement dit, si CompatIDsLength n’a pas la valeur zéro), la liste CompatIDs Commence 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 d’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 AUTRES ID (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 et des ID compatibles sont spécifiés dans la section Modèles INF, la mémoire tampon HardwareID peut ressembler à l’un des éléments suivants :
- \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)
}
Notes
L’en-tête setupapi.h définit SP_DRVINFO_DETAIL_DATA 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
Condition requise | Valeur |
---|---|
En-tête | setupapi.h (inclure Setupapi.h) |