如何在VC中刷新设备管理器
来源:互联网 发布:阶层算法 编辑:程序博客网 时间:2024/04/30 07:09
#include "stdafx.h"
#include <windows.h>
/*
* where use the typedef keyword, you can use the originality instead such as use DWORD instead of DEVINST
*/
typedef DWORD DEVINST;
typedef DEVINST *PDEVINST;
typedef DWORD RETURN_TYPE;
typedef RETURN_TYPE CONFIGRET;
typedef CHAR *DEVINSTID_A; // Device ID ANSI name.
#define CM_LOCATE_DEVNODE_NORMAL 0x00000000
#define CR_SUCCESS 0x00000000
/*
* this function prototype for get CM_Locate_DevNodeW function address
* how to use CM_Locate_DevNodeW function, you may see about DDK Documentation
*/
typedef CONFIGRET (__stdcall *CM_LOCATE_DEVNODE_FUNC) (
OUT PDEVINST pdnDevInst,
IN DEVINSTID_A pDeviceID, OPTIONAL
IN DWORD ulFlags
);
/*
* this function prototype for get CM_Reenumerate_DevNode function address
* how to use CM_Reenumerate_DevNode function, you may see about DDK Documentation
*/
typedef CONFIGRET (__stdcall *CM_Reenumerate_DevNode_FUNC) (
IN DEVINST dnDevInst,
IN DWORD ulFlags
);
CM_LOCATE_DEVNODE_FUNC _Get_Locate_DevNode = NULL;
CM_Reenumerate_DevNode_FUNC _Get_Reenumerate_DevNode = NULL;
HINSTANCE handle;
DEVINST devInst;
CONFIGRET status;
handle = LoadLibrary("cfgmgr32.dll");
if ( handle == 0 ) {
printf("LoadLibrary failed!");
}
_Get_Locate_DevNode = (CM_LOCATE_DEVNODE_FUNC)GetProcAddress(handle, "CM_Locate_DevNodeW");
if ( _Get_Locate_DevNode != NULL ) {
status = _Get_Locate_DevNode(&devInst, NULL, CM_LOCATE_DEVNODE_NORMAL);
if ( status != CR_SUCCESS) {
printf("_Get_Locate_DevNode failed!");
}
}
_Get_Reenumerate_DevNode = (CM_Reenumerate_DevNode_FUNC)GetProcAddress(handle, "CM_Reenumerate_DevNode");
if ( _Get_Reenumerate_DevNode != NULL ) {
status = _Get_Reenumerate_DevNode(devInst, 0);
if ( status != CR_SUCCESS) {
printf("_Get_Reenumerate_DevNode failed!");
}
}
FreeLibrary(handle);
- 如何在VC中刷新设备管理器
- 在VC中如何强迫当前窗口刷新
- 如何在我的电脑右键中增加设备管理器菜单
- 在设备管理器中注册自己的设备
- Android【USB名称修改系列】第5项-如何修改MTP在PC设备管理器中制造商的名称
- Android【USB名称修改系列】第9项-如何修改UMS在设备管理器中DiskDrive下的名称
- Android【USB名称修改系列】第9项-如何修改UMS在设备管理器中DiskDrive下的名称
- 在我的电脑右键中增加设备管理器菜单
- vc中如何使用设备描述表
- VC禁止在任务管理器中结束本进程
- VC禁止在任务管理器中结束本进程
- 在VC中如何获得USB设备的Product ID,Vendor ID等信息
- 在VC中如何获得USB设备的Product ID,Vendor ID等信息
- vc中如何可以识别到插入的设备在哪个USB端口
- 29.VC(custom)-DDK、设备管理器相关
- 获取设备管理器的信息 - VC
- 设置 DevMgr_Show_NonPresent_Devices 令未连接的历史设备在 Windows 设备管理器中现形
- 在SQLSERVER企业管理器中如何创建触发器
- 如何获取其它窗口的句柄
- 又回来了
- 如何在VC中通过添加资源文件,使程序在Vista上用管理员权限运行
- Java 异步io
- ssh分页实例
- 如何在VC中刷新设备管理器
- Dom4j操作XML
- 想在这儿安个家?学点东西!!
- 2007年国内最常用的PHP+MySql免费CMS系统大全
- 硬盘文件备份,给大家敲个小警钟
- 无线上网技术
- TCP/IP编程基础——超时、多路复用、非阻塞
- 用VB.NET定制Windows控件
- Ebay Kijiji实习日志-第一天,很HIGH,谁tmd说程序员是高级民工?明明很爽~