driver studio一些问题

jjjlujun 2011-05-12 04:45:18
我使用driverstudio3.2建立框架增加端点时,有个packet size和transfer size有什么区别?如果我需要端点1最大是8字节,端点2是最大64字节应设置哪个?
DDK中的函数都带有deviceobject,pirp或context等参数,怎么变到driver studio只用kdevice中kirp I这个参数;或者怎么在driver studio用kdevice中kirp I这个参数调用deviceobject(因为我的程序中用到设备扩展,需要deviceobject)。如果在driver studio用kdevice中kirp I这个参数也能设备扩展的话,望各位不吝赐教。(后一问题问过还没得到满意答案)

DDK中使用deviceobject->DEVICE_EXTENSION 进行设备扩展
设备扩展_DEVICE_EXTENSION 定义如下:

typedef struct _DEVICE_EXTENSION { // 定义设备扩展结构
UNICODE_STRING mExtDeviceName; // 设备名称
PDEVICE_OBJECT mExtPhysicalTarget; // 物理设备对象指针
PDEVICE_OBJECT mExtNextLowerDevice; // 下级设备对象指针
USBD_PIPE_HANDLE mExtInterUpPipe; // USB中断数据上传管道的句柄
USBD_PIPE_HANDLE mExtAuxDownPipe; // USB辅助数据下传管道的句柄
USBD_PIPE_HANDLE mExtDataDownPipe; // USB数据块下传管道的句柄
USBD_PIPE_HANDLE mExtDataUpPipe; // USB数据块上传管道的句柄
ULONG mExtIoCount; // 计数正在进行的操作,以阻止操作中途停止或者移除设备
ULONG mExtDeviceOpen; // 指示设备被打开的次数
BOOLEAN mExtDeviceStart; // 指示设备启动状态
BOOLEAN mExtDeviceRemove; // 指示设备移除状态
BOOLEAN mExtDeviceExclusive; // 指示设备是否独占使用
ULONG mExtInterTimeout; // USB中断数据上传管道的通讯超时
ULONG mExtAuxTimeout; // USB辅助数据下传管道的通讯超时
ULONG mExtDownTimeout; // USB数据块下传管道的通讯超时
ULONG mExtUpTimeout; // USB数据块上传管道的通讯超时
LARGE_INTEGER mExtInterWaitTime;
LARGE_INTEGER mExtAuxWaitTime;
LARGE_INTEGER mExtDownWaitTime;
LARGE_INTEGER mExtUpWaitTime;
KEVENT mExtThreadToutEvent;
ULONG mExtThreadToutAct;
ULONG mExtUsbInterCount;
ULONG mExtUsbAuxCount;
ULONG mExtUsbUpCount;
ULONG mExtUsbDownCount;
LARGE_INTEGER mExtInterStartTime;
LARGE_INTEGER mExtAuxStartTime;
LARGE_INTEGER mExtDownStartTime;
LARGE_INTEGER mExtUpStartTime;
PURB mExtUrbBuffer; // 指向URB
URB mExtPublicUrb; // 公用URB
KSPIN_LOCK mControlLock;
KEVENT ThreadStartEvent;
ULONG ThreadUsbCount;
PUCHAR ThreadBuffer;
mPLINK_URB_BUF ThreadQueueFree;
mPLINK_URB_BUF ThreadQueueWait;
ULONG ThreadBufSize;
PUCHAR ThreadInStart;
PUCHAR ThreadOutStart;
ULONG ThreadInSize;
KSPIN_LOCK mControlLockDn;
KEVENT DnThreadStartEvent;
ULONG DnThreadUsbCount;
PUCHAR DnThreadBuffer;
mPLINK_URB_BUF DnThreadQueueFree;
mPLINK_URB_BUF DnThreadQueueWait;
ULONG DnThreadBufSize;
PUCHAR DnThreadInStart;
PUCHAR DnThreadOutStart;
ULONG DnThreadInSize;
} mDEVICE_EXTENSION, *mPDEVICE_EXTENSION;
...全文
47 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
hunter0395 2011-05-27
  • 打赏
  • 举报
回复
driverstudio只不过是把DDK封装了。
不必做扩展吧,直接在类里面添加成员
hunter0395 2011-05-17
  • 打赏
  • 举报
回复
我也刚弄driverstudio。
ddk是C实现,driverstudio是C++实现。
我感觉在设备类对象中this就是deviceobject指针
DriverStudio 3.2是迄今为止最完备的驱动开发工具套件,它所提供的工具覆盖了 驱动开发的方方面面。DriverStudio套件中的所有工具都与Visual Studio IDE环 境集成在一起。开发人员可以在Visual Studio .NET 2002和2003环境中编写并测 试驱动程序,并且通过使用Microsoft C++编译器与Microsoft DDK完全保持兼容。 在这个版本中,所有工具的功能都得到了加强并且让开发人员可以更容易的开发优 质的驱动程序,这个版本的DriverStudio包括下列工具: DriverWorks DriverNetworks Visual SoftICE SoftICE BoundsChecker Driver Edition TrueTime Driver Edition TrueCoverage Driver Edition DriverWorks和DriverNetworks是DriverStudio的两个主要框架工具,可以提高开发 驱动程序的速度。DriverWorks简化了开发NT和WDM驱动程序的工作;DriverNetworks 则帮助开发人员毫不费力的创建和定制网络驱动程序。目前的版本可以让驱动程序 开发人员来回切换开发工具而无需改变开发环境。 DriverWorks和DriverNetworks还都提供了全新的DriverWizard,可以用C语言来创建 Windows设备驱动程序。另外,DriverWorks和DriverNetworks还为Visual Studio .NET 提供了全新的菜单和工具条,让开发人员可以使用Windows DDK编译器和链接器来build 驱动程序。 DriverWorks的类库和实例现在已经支持开发虚拟COM端口的驱动程序了。 Visual SoftICE是一个双机的系统级调试器,提供了多窗口,可配置的图形化用户界面 来帮助开发人员调试核心级的驱动程序,应用程序甚至于整个操作系统。 Visual SoftICE的最新版本在性能,功能以及用户界面上都有很大提高,其他新特性还 包括: 完全支持AMD 64位的Opteron和Athlon64处理器所提供的10个新命令: SYMLINK, DEVMGR, DP, TDIR, TMKDIR, TMOVE, TRENAME, TRMDIR, TRMFILE和TVOL。 SoftICE支持单机,用串行线连接的双机或是通过TCP/IP连接的远程计算机上的核心 级和用户级的调试。在DriverStudio 3.1版本中,SoftICE可以: 支持VMware 4.0 在"DriverStudio Config"中提供了一个新的反编译选项页 符号加载器提供了改进后的新界面 BoundsChecker Driver Edition是一个错误侦测工具,可以实施分析和侦测设备驱动 程序的错误。开发人员可以马上发现并修正这些错误,不用像以前那样要在数小时后 才能完成。新增的改进还有: 开发人员修改程序设置之后无需重启计算机 让开发人员可以记录驱动程序中的user-written函数。开发人员可以清楚地看到开发 中驱动程序在运行时的情况 可以查看DriverWorkbench内置的事件页汇总信息,包括记录了多少错误和泄漏问题 提供SoftICE事件命令的新开关参数,用来标示BoundsChecker当前监视的驱动程序 改进的自旋锁(spinlock)错误侦测 TrueTime Driver Edition可以用来改善驱动程序的性能问题,它可以准确地指出导致 速度变慢的代码和性能瓶颈。在DriverStudio 3.1版本中,用户可以将两个或多个测试 数据文件合并为一个,用来比较不同条件下改变代码所带来的性能提高情况。新增的改 进还有: 从系统性能计数器中收集数据 全新的"Custom Chart"为所有的函数,IRP和性能数据提供了集成可定制的显示方式 在文件系统可用之前即可开始收集性能数据 显示的数据可以导出为以逗号分割的文本文件,以备后续处理 TrueCoverage Driver Edition是一个代码辅助工具,它可以在没有源代码和符号文件的 情况下收集代码的辅助信息。驱动开发人员可以以图形化的方式查看代码结构,另外: 同时支持NMS和PDB符号文件 可以获取以下辅助数据:每个线程的基本信息,符合条件的辅助信息和部分执行的代码

21,595

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 驱动开发/核心开发
社区管理员
  • 驱动开发/核心开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧