阅读:1095回复:3
管道名是如何使用?
感觉应用程序对管道名的读写就实现聊对端点的读写。对吗?
但管道名从哪来的? pipe00,pipe01等 |
|
沙发#
发布于:2003-05-19 02:05
通道是设备与主机的 逻辑 连结。
|
|
板凳#
发布于:2003-05-19 13:34
在68013里0,1,2,3就对应ep2,ep4,ep6,ep8
|
|
地板#
发布于: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; } |
|