driver studio一些问题
我使用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;