lanbada
驱动牛犊
驱动牛犊
  • 注册日期2002-11-12
  • 最后登录2016-01-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1096回复:3

管道名是如何使用?

楼主#
更多 发布于:2003-05-18 10:43
感觉应用程序对管道名的读写就实现聊对端点的读写。对吗?
但管道名从哪来的?
pipe00,pipe01等
jinghuiren
驱动巨牛
驱动巨牛
  • 注册日期2002-06-01
  • 最后登录2008-10-27
  • 粉丝0
  • 关注0
  • 积分291分
  • 威望460点
  • 贡献值0点
  • 好评度428点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-05-19 14:19
如果你有驱动程序源代码,你看一下里面的bulidpipelist,或者是setinterface,或者selectinterface函数里面,就应该用关于端点的描述,例如:
NTSTATUS
D12_BuildPipeList( IN  PDEVICE_OBJECT DeviceObject )
{
    PDEVICE_EXTENSION deviceExtension;
    ULONG i;
    WCHAR Name[] = L\"\\\\PIPE00\";
    PUSBD_INTERFACE_INFORMATION interface;

    deviceExtension = DeviceObject->DeviceExtension;
    interface = deviceExtension->Interface;

    D12_KdPrint ((\"D12TEST.SYS: enter D12_BuildPipeList\\n\"));

    deviceExtension = DeviceObject->DeviceExtension;

    for (i=0; i<D12_MAX_PIPES; i++) {

        Name[6] = \'X\';
        RtlCopyMemory(deviceExtension->PipeList.Name,
                      Name,
                      sizeof(Name));

    }
    // build a list of pipe names based on the interface

    for (i=0; i<interface->NumberOfPipes; i++) {

        Name[6] = \'0\' + (USHORT) i;
        RtlCopyMemory(deviceExtension->PipeList.Name,
                      Name,
                      sizeof(Name));
//前面的部分是为管到命名
//后面的部分是管道的内容,如果你想是用这个管道,可以再应用程序里传入管道名,也可以传入管道号(0、1、2……)
        deviceExtension->PipeList.PipeInfo =
            &interface->Pipes;

        deviceExtension->PipeList.Opened = FALSE;
    }

    return STATUS_SUCCESS;
}
yjmpepe
驱动牛犊
驱动牛犊
  • 注册日期2003-04-18
  • 最后登录2016-01-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-05-19 13:34
在68013里0,1,2,3就对应ep2,ep4,ep6,ep8
zmhuang
驱动牛犊
驱动牛犊
  • 注册日期2002-10-09
  • 最后登录2008-12-14
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望3点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
地板#
发布于:2003-05-19 02:05
通道是设备与主机的 逻辑 连结。
                    
游客

返回顶部