列出电脑上的所有USB端口和端口上的U盘(包含U盘的序列号)。
在windowsXP下已经已经解决。但在windows2000下检测到的Usb hub要比XP下少一个,端口也少,我所用的那种U盘也检测不到。
检测USB hub使用的是CreateFile,不知道为什么到windows2000下就不正常了。
使用CreateFile打开USB hubHostControllerName := '\\.\HCD' + IntToStr(ControllerIndex);//ControllerIndex从0开始增加
HostControllerHandle := CreateFile(PChar(HostControllerName),
GENERIC_WRITE, //$40000000
FILE_SHARE_WRITE, //$00000002;
nil,
OPEN_EXISTING, //3
0,
0);在windowsXP下可以获得5个Hub,但到了Windows2000下就变成了4个。
应该说CreateFile是个通用得函数吧,怎么到Windows2000就不正常了呢?
在windowsXP下已经已经解决。但在windows2000下检测到的Usb hub要比XP下少一个,端口也少,我所用的那种U盘也检测不到。
检测USB hub使用的是CreateFile,不知道为什么到windows2000下就不正常了。
使用CreateFile打开USB hubHostControllerName := '\\.\HCD' + IntToStr(ControllerIndex);//ControllerIndex从0开始增加
HostControllerHandle := CreateFile(PChar(HostControllerName),
GENERIC_WRITE, //$40000000
FILE_SHARE_WRITE, //$00000002;
nil,
OPEN_EXISTING, //3
0,
0);在windowsXP下可以获得5个Hub,但到了Windows2000下就变成了4个。
应该说CreateFile是个通用得函数吧,怎么到Windows2000就不正常了呢?
真是愁死我了。
在windows2000和windowsXP下,当我插普通U盘的时候,检测的U盘是列在实际的端口下的。当插入的是我们的专有U盘的时候,在windowsXP下U盘列在了最后一个Hub的端口下(也就是实际端口的映射);在windows2000下,则根本检测不到,但在资源管理器里边是有的。 说一下我使用的U盘:这种U盘是被分成了光盘区和普通U盘区的,在资源管理器里边显示的是一个光盘一个普通U盘。