3035|2

70

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

访问SCSI miniport的问题 [复制链接]

系统中有一SCSI controller 卡,驱动为miniport driver,在用户态,我使用CreateFile("\\\\.\\Scsi2:"........)打开设备,没出现问题,但在DeviceIoControl中,程序出现55号错误,即:“The specified network resource or device is no longer available.”不知为什么?
代码如下:
         UCHAR string[NAME_COUNT + 1];
        char buffer[sizeof(SRB_IO_CONTROL)+1];
        PSRB_IO_CONTROL psrbio = (PSRB_IO_CONTROL) buffer;

        psrbio->HeaderLength = sizeof (SRB_IO_CONTROL);
        psrbio->Timeout = 10000;
        psrbio->Length = 1;
        strncpy((char *)psrbio->Signature,"SCSIDISK",8);

    _snprintf(string, NAME_COUNT, "\\\\.\\Scsi2:");
    string[NAME_COUNT] = 0;

    shareMode = FILE_SHARE_READ | FILE_SHARE_WRITE;  // default
    accessMode = GENERIC_WRITE | GENERIC_READ;       // default

    fileHandle = CreateFile(string,
       accessMode,
       shareMode,
       NULL,
       OPEN_EXISTING,
       0,
       NULL);

    if (fileHandle == INVALID_HANDLE_VALUE) {
        errorCode = GetLastError();
        printf("Error opening %s. Error: %d\n",
               string, errorCode);
        return;
    }
        sr = DeviceIoControl(fileHandle,
                                        IOCTL_SCSI_MINIPORT,
                                        buffer,
                                        sizeof(SRB_IO_CONTROL)+1,
                                        buffer,
                                        sizeof(SRB_IO_CONTROL)+1,
                                        &result,
                                        NULL);
        if(!sr){
                printf("Failure in ioctl!\n");
                errorCode = GetLastError();
                printf("Error: %d\n",
                errorCode);
                PrintError(errorCode);
        }
        CloseHandle(fileHandle);

最新回复

没用过这种Control,检查一下Control的参数,psrbio->ControlCode不需要初始化吗?  详情 回复 发表于 2008-7-1 18:37
点赞 关注

回复
举报

77

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
在Createfile之后,最好再Open一次,因为有的驱动会在初始化之后,将其休眠或者poweroff的,结果直接去IOControl,就会找不到。
 
 

回复

73

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
没用过这种Control,检查一下Control的参数,psrbio->ControlCode不需要初始化吗?
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表