如何识别硬件来安装相应的驱动?


比如新安装的电脑没有安装网卡驱动,如何通过程序取得该电脑对应的网卡驱动类型,像驱动精灵那样。

驱动 windows

本間芽衣子 11 years, 11 months ago
  1. 首先得有大量的驱动存储在后台,可供客户端查找,像驱动精灵,都是通过在线查询,然后下载安装来完成的
  2. 怎么匹配呢?需要读该网卡的PID和VID,然后提交到后台进行匹配

读取网卡PID和VID的代码如下:

   
  static BOOL WDK_GetVIDPID( TCHAR* DevicePath, TCHAR* szProperty, UINT uSize )
  
{
HANDLE hDeviceFile;
BOOL isOK = FALSE;

// 获取设备句柄
hDeviceFile = CreateFile( DevicePath,
0,
FILE_SHARE_READ | FILE_SHARE_WRITE,
NULL,
OPEN_EXISTING,
0,
NULL);

if( hDeviceFile != INVALID_HANDLE_VALUE )
{ // 获取设备属性
HIDD_ATTRIBUTES Attributes;

Attributes.Size = sizeof(HIDD_ATTRIBUTES);
isOK = HidD_GetAttributes( hDeviceFile, &Attributes; );
if( isOK )
{
if( szProperty != NULL )
{
StringCchPrintf( szProperty, uSize, TEXT("%04X-%04X"), Attributes.VendorID, Attributes.ProductID );
}
}

CloseHandle( hDeviceFile );
}

return isOK;
}

番茄是西红柿哦 answered 11 years, 11 months ago

Your Answer