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 的开头 缓冲区开始 CompatID 列表。
此值还可用于确定在 CompatID 列表之前是否存在 硬件 ID。 如果此值大于 1,则 HardwareID 缓冲区中的第一个字符串是硬件 ID。 如果此值小于或等于 1,则没有硬件 ID。
CompatIDsLength
从 HardwareID 缓冲区开头偏移量 CompatIDsOffset 开始的 CompatIDs 列表的长度(以字符为单位)。
如果 CompatIDsLength 为非零,CompatIDs 列表将包含一个或多个以 NULL 结尾的字符串,该字符串在列表末尾具有额外的 NULL 字符。
如果 CompatIDsLength 为零,则 CompatIDs 列表为空。 在这种情况下,列表中末尾没有其他 NULL 字符。
Reserved
保留。 仅供内部使用。
SectionName[LINE_LEN]
一个以 NULL 结尾的字符串,其中包含此驱动程序的 INF DDInstall 节的名称。 这必须是基本 DDInstall 节名称,如 InstallSec,没有任何特定于 OS/体系结构的扩展。
InfFileName[MAX_PATH]
一个以 NULL 结尾的字符串,其中包含此驱动程序的 INF 文件的完整限定名称。
DrvDescription[LINE_LEN]
描述驱动程序的 NULL 终止字符串。
HardwareID[ANYSIZE_ARRAY]
包含 ID 列表的缓冲区(单个 硬件 ID 后跟 兼容 ID 列表)。 这些 ID 对应于 INF 模型部分的硬件 ID 和兼容 ID。
列表中的每个 ID 都是以 NULL 结尾的字符串。
如果硬件 ID 存在(即,如果 CompatIDsOffset 大于 1),则会在缓冲区的开头找到此单个 NULL 终止的字符串。
如果 CompatIDs 列表不为空(也就是说,如果 CompatIDsLength 不为零),则 CompatIDs 列表从此缓冲区的开头 CompatIDsOffset 偏移量开始,并在列表末尾以额外的 NULL 字符结尾终止。
言论
- 第一个 ID(如果指定)是设备的硬件 ID。
- 其余 ID(如果指定)是设备的兼容 ID。
例如,根据 硬件 ID 列表 和 兼容的 ID 列表 在 INF 模型部分中指定的方式,HardwareID 缓冲区可以类似于以下任何一种:
- \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定义为基于 UNICODE 预处理器常量定义自动选择此函数的 ANSI 或 Unicode 版本的别名。 将中性编码别名与不中性编码的代码混合使用可能会导致编译或运行时错误不匹配。 有关详细信息,请参阅函数原型的
要求
要求 | 价值 |
---|---|
标头 | setupapi.h (包括 Setupapi.h) |