阅读:1907回复:1
百思不解!
NTSTATUS UsbBulkDevice::DefaultPnp(KIrp I)
{ static char* minors[] = { "IRP_MN_START_DEVICE", "IRP_MN_QUERY_REMOVE_DEVICE", .............. .............. "IRP_MN_SURPRISE_REMOVAL" }; ULONG Minor = I.MinorFunction(); CHAR* IrpName; if ( Minor < IRP_MN_SURPRISE_REMOVAL ) IrpName = minors[Minor]; //此处我觉得怪异,IrpName赋值后是I.MinorFunction吗? //I.MinorFunction怎么会正好是服从minors[]的顺序呢? //minors[]似乎并不是规定的顺序呀! else IrpName = "<unknown>"; DbgPrint("Pnp IRP minor function=%s\n", IrpName); I.ForceReuseOfCurrentStackLocationInCalldown(); return m_Usb.PnpCall(this, I); } 问题二: // initialize description of data in pipe (In Bulk) m_Endpoints[0].Initialize(1, 0, 0, 0x81, &m_Interface, &m_Pipe0); // initialize description of data out pipe (Out Bulk) m_Endpoints[1].Initialize(1, 0, 0, 0x2, &m_Interface, &m_Pipe1); //这两个初始化各个参数是什么意思,帮助中找不到吗! 而且: USB_ENDPOINT m_Endpoints[2]; USB_ENDPOINT类型根本找不到哇!给管道初始化不就够了吗?还要给端点初始化??? |
|
沙发#
发布于:2001-05-29 18:55
虽然我不知道,可是hora 的态度可不对。
我们不但要知其然还要志气所以然。就向侯俊杰老先生所说的,有一样技术不明白他的道理实在是不明智 |
|