阅读:1406回复:6
使用IOCTL_DISK_CONTROLLER_NUMBER的问题
我的目的是得到磁盘驱动器的数目:
DeviceIoControl(hDevice, // 设备句柄 IOCTL_DISK_CONTROLLER_NUMBER, // 指定IOCTL pSCIP, sizeof(SENDCMDINPARAMS) - 1, // 输入数据缓冲区 pSCOP, sizeof(SENDCMDINPARAMS) + sizeof(DISK_CONTROLLER_NUMBER) - 1, // 输出数据缓冲区 &dwOutBytes, // 输出数据长度 (LPOVERLAPPED)NULL); // 用同步I/O SENDCMDINPARAMS,SENDCMDINPARAMS,DISK_CONTROLLER_NUMBER都是从DDK里面照抄的,提示参数不正确,为什么呢?多谢! |
|
沙发#
发布于:2004-05-26 08:46
前面还有几句:
pSCIP = (PSENDCMDINPARAMS)::GlobalAlloc(LMEM_ZEROINIT, sizeof(SENDCMDINPARAMS) - 1); pSCOP = (PSENDCMDOUTPARAMS)::GlobalAlloc(LMEM_ZEROINIT, sizeof(SENDCMDOUTPARAMS) + sizeof(DISK_CONTROLLER_NUMBER)-1); pSCOP->cBufferSize = sizeof(DISK_CONTROLLER_NUMBER); |
|
板凳#
发布于:2004-05-26 09:13
刚才查了查,这个IOCTL只能在NT4.0以上的系统上执行,我的是XP,可以不?
|
|
地板#
发布于:2004-05-26 09:20
明显是可以的
|
|
地下室#
发布于:2004-05-26 09:23
好像没什么问题
提示第几个参数错误,把错误信息贴出来 |
|
|
5楼#
发布于:2004-05-26 09:36
好像没什么问题 怎么看第几个参数错误?我用的是getlasterror,编译没有错误的 |
|
6楼#
发布于:2004-05-26 11:50
是函数错误,奇怪了
|
|