penny 发表于 2007-1-24 15:37:49

枚举设备信息的DDK函数的lv实现??

枚举设备信息函数SetupDiGetClassDevs,用call library function node 实现,在参数设置中出现问题,无法返回正确结果。请高手指教

1、函数结构如下:
HDEVINFO
    SetupDiGetClassDevs(

      IN PGUIDClassGuid,    /* optional */

      IN PCTSTREnumerator,    /* optional */

      IN HWNDhwndParent,    /* optional */

      IN DWORDFlags
      );

2、要实现的语句
#define DIGCF_PRESENT         0x00000002
#define DIGCF_DEVICEINTERFACE   0x00000010
HDEVINFO hDevInfoList = SetupDiGetClassDevs (&m_GUID, NULL, NULL, (DIGCF_PRESENT | DIGCF_DEVICEINTERFACE));

3、lv实现
如附件。其中的GUID采用了一些常数值。

lgh269 发表于 2007-1-24 17:17:06

老兄呀,你不来是不来一来就搞难题,
GUID的获得你应知道了,可以通过注册表获得
GUID的定义如下,这是个例子

Disk类的GUID为“53f56307-b6bf-11d0-94f2-00a0c91efb8b”,在我们的程序里可以定义为
const GUID DiskClassGuid = {0x53f56307L, 0xb6bf, 0x11d0, {0x94, 0xf2, 0x00, 0xa0, 0xc9, 0x1e, 0xfb, 0x8b)};

在LV中定义也须要这样子,
另外输出的是句柄,你须要用U32类型吧

penny 发表于 2007-1-24 23:29:04

呵呵,我是隆重出场阿。

GUID={0x53f56307L, 0xb6bf, 0x11d0, {0x94, 0xf2, 0x00, 0xa0, 0xc9, 0x1e, 0xfb, 0x8b)}在lv里怎么实现?是我例子中方法(簇)吧?查了好多资料都说用簇,但都不详细。
输出的句柄用U32也不对i,里面的数据类型我差不多试遍了,得到的值都与用vc运行程序的值不一样。
页: [1]
查看完整版本: 枚举设备信息的DDK函数的lv实现??