feihu989
驱动牛犊
驱动牛犊
  • 注册日期2005-03-09
  • 最后登录2005-06-28
  • 粉丝0
  • 关注0
  • 积分13分
  • 威望3点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1161回复:2

关于usb和driverwork

楼主#
更多 发布于:2005-03-21 16:05
初学usb驱动开发,向各位大侠问个简单的问题,driverwork中自动产生了pnp还有power等例程的代码,小弟不清楚该如何去添加修改其中的代码,比如pnp还有power例程里面自动产生的代码在实际的驱动程序中是不是直接可用了?另外,我又看了driverwork提供的几个例子(bulkbsb),发现pnp例程下面代码其实添加了一些代码(在建立的框架中并没有TODO,也要添加代码吗),不知道那些代码什么意思,
。。。。。。。。。
ULONG Minor = I.MinorFunction();
CHAR* IrpName;

if ( Minor < IRP_MN_SURPRISE_REMOVAL )
IrpName = minors[Minor];
else
IrpName = \"<unknown>\";
希望牛人能够告知一二,让小弟有个清醒的认识,谢谢!
i'm just a shy boy.
feihu989
驱动牛犊
驱动牛犊
  • 注册日期2005-03-09
  • 最后登录2005-06-28
  • 粉丝0
  • 关注0
  • 积分13分
  • 威望3点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2005-03-22 16:05
哪位大哥救救俺啊!
i'm just a shy boy.
aiwadgj
驱动老牛
驱动老牛
  • 注册日期2004-11-13
  • 最后登录2020-12-24
  • 粉丝0
  • 关注0
  • 积分119分
  • 威望84点
  • 贡献值0点
  • 好评度14点
  • 原创分0分
  • 专家分0分
  • 社区居民
板凳#
发布于:2005-03-22 17:38
初学usb驱动开发,向各位大侠问个简单的问题,driverwork中自动产生了pnp还有power等例程的代码,小弟不清楚该如何去添加修改其中的代码,比如pnp还有power例程里面自动产生的代码在实际的驱动程序中是不是直接可用了?另外,我又看了driverwork提供的几个例子(bulkbsb),发现pnp例程下面代码其实添加了一些代码(在建立的框架中并没有TODO,也要添加代码吗),不知道那些代码什么意思,
。。。。。。。。。
ULONG Minor = I.MinorFunction();
 获得IRP的次功能代码。。
CHAR* IrpName;

if ( Minor < IRP_MN_SURPRISE_REMOVAL )
IrpName = minors[Minor];
else
IrpName = \"<unknown>\";

这个里面不是定义了一个字符串数组吗?,,你没有看到,,这个数组中的每个元素代表一个次功能代码?,,给你贴上来看看就知道了,

char *PNPMinorFunctionName(ULONG mn)//返回字符串,代表PNP的各个minorfunction
{
static char* minors[] = {
\"IRP_MN_START_DEVICE\",
\"IRP_MN_QUERY_REMOVE_DEVICE\",
\"IRP_MN_REMOVE_DEVICE\",
\"IRP_MN_CANCEL_REMOVE_DEVICE\",
\"IRP_MN_STOP_DEVICE\",
\"IRP_MN_QUERY_STOP_DEVICE\",
\"IRP_MN_CANCEL_STOP_DEVICE\",
\"IRP_MN_QUERY_DEVICE_RELATIONS\",
\"IRP_MN_QUERY_INTERFACE\",
\"IRP_MN_QUERY_CAPABILITIES\",
\"IRP_MN_QUERY_RESOURCES\",
\"IRP_MN_QUERY_RESOURCE_REQUIREMENTS\",
\"IRP_MN_QUERY_DEVICE_TEXT\",
\"IRP_MN_FILTER_RESOURCE_REQUIREMENTS\",
\"<unknown minor function>\",
\"IRP_MN_READ_CONFIG\",
\"IRP_MN_WRITE_CONFIG\",
\"IRP_MN_EJECT\",
\"IRP_MN_SET_LOCK\",
\"IRP_MN_QUERY_ID\",
\"IRP_MN_QUERY_PNP_DEVICE_STATE\",
\"IRP_MN_QUERY_BUS_INFORMATION\",
\"IRP_MN_DEVICE_USAGE_NOTIFICATION\",
\"IRP_MN_SURPRISE_REMOVAL\"
};

if (mn > IRP_MN_SURPRISE_REMOVAL)
return \"<unknown minor function>\";
else
return minors[mn];
}

学过c语言应该可以看懂的吧。。。。。。。。。。
希望牛人能够告知一二,让小弟有个清醒的认识,谢谢!
酒也在沉溺,何时麻醉我抑郁。过去了的一切会平息。。。。。。。
游客

返回顶部