我先在设备管理器中在光驱的驱动TSSTcorp CDDVD TS-H663C上点击右键选择停用。然后在TSSTcorp CDDVD TS-H663C上点击鼠标右键->更新驱动程序接着弹出硬件更新向导选择:从列表或指定位置安装(高级)(S),接着下一步,在显示的对话框中选则:不要搜索。我要自己选择要安装的驱动程序(D)。接着下一步,在显示的对话框中型号列表框中选:CD-ROM Drive。接着下一步,在完成对话框中提升无法启用这个硬件,然后点击完成。紧接着会弹出一个新的对话框,提升TSSTcorp CDDVD TS-H663C驱动被停用,是否要启用该设备。选择取消按钮,关闭对话框。这是TSSTcorp CDDVD TS-H663C驱动如图一所示,仍然处于停用状态。然后我在vc中用如下代码启用TSSTcorp CDDVD TS-H663C驱动: HDEVINFO  hDevInfo = NULL;
 ULONG   i;
 SP_DEVINFO_DATA stDevInfoData;
 DWORD   dwFlags;
 GUID ClassGuid;
 DWORD dwNumClass;
 BOOL bInterface=FALSE;
 
 SetupDiClassGuidsFromNameEx("CDROM",&ClassGuid,1,&dwNumClass,NULL,NULL);
 if (bInterface)
 {
  dwFlags = DIGCF_PRESENT | DIGCF_DEVICEINTERFACE;
 }
 else
 {
  dwFlags = DIGCF_PRESENT;
 } hDevInfo = SetupDiGetClassDevs(&ClassGuid,NULL,NULL,dwFlags);
 if (hDevInfo == INVALID_HANDLE_VALUE)
 {
  return FALSE;
 }
 
 ZeroMemory(&stDevInfoData,sizeof(SP_DEVINFO_DATA));
 stDevInfoData.cbSize = sizeof(SP_DEVINFO_DATA);
 for (i=0; SetupDiEnumDeviceInfo(hDevInfo,i,&stDevInfoData); i++)
 { 
  SP_PROPCHANGE_PARAMS pcp;
  ULONG Status;
  ULONG Problem;
  
  CM_Get_DevNode_Status(&Status, &Problem, stDevInfoData.DevInst ,0);
 
  pcp.ClassInstallHeader.cbSize = sizeof(SP_CLASSINSTALL_HEADER);
  pcp.ClassInstallHeader.InstallFunction = DIF_PROPERTYCHANGE;
  pcp.StateChange = DICS_ENABLE;
  pcp.Scope = DICS_FLAG_GLOBAL;
  pcp.HwProfile = 0;
  
  BOOL RES=FALSE;
  if(SetupDiSetClassInstallParams(hDevInfo,&stDevInfoData,&pcp.ClassInstallHeader,sizeof(pcp))) 
  {
   RES=SetupDiCallClassInstaller(DIF_PROPERTYCHANGE,hDevInfo,&stDevInfoData);    int nErrors = GetLastError();
   }
 }
 
 SetupDiDestroyDeviceInfoList(hDevInfo);代码执行完后RES为TRUE,nErrors为0,说明执行成功,则TSSTcorp CDDVD TS-H663C驱动应该变成启用状态, 但TSSTcorp CDDVD TS-H663C驱动的状态仍处于禁用状态。求大侠指点。