структура SP_DRVINFO_DETAIL_DATA_A (setupapi.h)
Структура SP_DRVINFO_DETAIL_DATA содержит подробные сведения о конкретной структуре сведений о драйвере.
Синтаксис
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;
Члены
cbSize
Размер структуры SP_DRVINFO_DETAIL_DATA в байтах.
InfDate
Дата INF-файла для этого драйвера.
CompatIDsOffset
Смещение в символах с начала буфера HardwareID, где начинается список compatIDs.
Это значение также можно использовать для определения того, существует ли идентификатор оборудования, предшествующий списку compatIDs. Если это значение больше 1, первая строка в буфере HardwareID является идентификатором оборудования. Если это значение меньше или равно 1, идентификатор оборудования отсутствует.
CompatIDsLength
Длина в символах списка compatIDs, начиная с смещения CompatIDsOffset с начала буфера HardwareID.
Если compatIDsLength ненулевое значение, список CompatIDs содержит одну или несколько строк, завершаемых значением NULL, с дополнительным символом NULL в конце списка.
Если compatIDsLength равно нулю, список compatIDs пуст. В этом случае в конце списка нет дополнительного символа NULL.
Reserved
Скрытный. Только для внутреннего использования.
SectionName[LINE_LEN]
Строка, завершающая значение NULL, содержащая имя раздела INF DDInstall
InfFileName[MAX_PATH]
Строка, завершающая значение NULL, содержащая полное имя INF-файла для этого драйвера.
DrvDescription[LINE_LEN]
Строка, завершающая значение NULL, описывающая драйвер.
HardwareID[ANYSIZE_ARRAY]
Буфер, содержащий список идентификаторов (один идентификатор оборудования , за которым следует список совместимых идентификаторов). Эти идентификаторы соответствуют идентификаторам оборудования и совместимым идентификаторам в разделе INF Models.
Каждый идентификатор в списке представляет собой строку, завершаемую значением NULL.
Если идентификатор оборудования существует (то есть если CompatIDsOffset больше одного), эта строка, завершающаяся значением NULL, найдена в начале буфера.
Если список compatIDs не пуст (то есть, если CompatIDsLength не равно нулю), список CompatIDs начинается с смещения CompatIDsOffset с начала этого буфера и завершается дополнительным символом NULL в конце списка.
Замечания
Идентификаторы оборудования
- Первый идентификатор (если указан) — это идентификатор оборудования для устройства.
- Остальные идентификаторы (при указании) совместимы с идентификаторами для устройства.
Например, в зависимости от того, как указан список идентификаторов оборудования
- \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)
}
Заметка
Заголовок setupapi.h определяет SP_DRVINFO_DETAIL_DATA как псевдоним, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОДа. Сочетание использования псевдонима, нейтрального для кодирования, с кодом, не зависящим от кодирования, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в соглашениях о прототипах функций.
Требования
Требование | Ценность |
---|---|
заголовка | setupapi.h (include Setupapi.h) |
См. также
раздел INF DDInstall
раздела моделей INF