概述
原文最开始由本人发表于:http://www.pnpon.com/article/detail-242.html
安装Windows驱动,首先得知道INF支持的硬件ID.本人手中有一个测试的inf文件,其内容如下:
设备支持的硬件ID如下:
字符串内容如下:
编写一个程序,用来解析INF文件。
代码如下:
#include <iostream>
#include <windows.h>
#include <SetupAPI.h>
#pragma comment(lib,"setupapi.lib")
int main()
{
HINF hInf = SetupOpenInfFile("d:\TEST.inf", NULL, INF_STYLE_OLDNT | INF_STYLE_WIN4, NULL);
if (INVALID_HANDLE_VALUE == hInf)
{
return 0;
}
const char* szSection = NULL;
INFCONTEXT infContext1, infContext2;
TCHAR szSrcFile[MAX_PATH];
ZeroMemory(szSrcFile, MAX_PATH);
szSection = "Standard.NTamd64";//这个是节名
char szValueData[512] = { 0 };
BOOL bWorking = SetupFindFirstLine(hInf, szSection, NULL, &infContext1);
while (bWorking)
{
// Get the xxx.CopyFile section
if (!SetupGetStringField(&infContext1, 0, szValueData, MAX_PATH, NULL))
{
bWorking = SetupFindNextLine(&infContext1, &infContext2);
infContext1 = infContext2;
continue;
}
int count = SetupGetFieldCount(&infContext1);
for (int i = 0; i <= count; i++)
{
char buff[512] = { 0 };
ULONG rtn = 0;
SetupGetStringField(&infContext1, i, buff, 512, &rtn);
printf("%sn", buff);
}
bWorking = SetupFindNextLine(&infContext1, &infContext2);
infContext1 = infContext2;
printf("n");
}
SetupCloseInfFile(hInf);
return 0;
}
运行结果如下:
参考代码如下:http://blog.sina.com.cn/s/blog_5a237c2b0100samh.html
USB中文网,学习USB的好去处 http://www.usbzh.com
最后
以上就是害羞母鸡为你收集整理的使用SETUPAPI函数解析INF中的硬件ID的全部内容,希望文章能够帮你解决使用SETUPAPI函数解析INF中的硬件ID所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复