在7600的src中有一个kmdf的目录,里面有一个示例程序,从step1到step5,直到final演示wdf的usb编程过程,做了一个step5的简化程序,我的设备是lpc2378,id码用nxp的0417,2378,可以实现16个字节的读写。
在final中才有timeout的处理过程,还在努力中,reset_device,timeout功能还要再看看。
http://msdn.microsoft.com/zh-tw/library/ff549679(v=VS.85).aspx
上述网址上有
VOID IoSetCompletionRoutine(
_In_ PIRP Irp,
_In_opt_ PIO_COMPLETION_ROUTINE CompletionRoutine,
_In_opt_ PVOID Context,
_In_ BOOLEAN InvokeOnSuccess,
_In_ BOOLEAN InvokeOnError,
_In_ BOOLEAN InvokeOnCancel
);
在后面的三个选项上,成功,错误,取消三个功能怎么激发,尤其是取消cancel怎么设定呢,也许只是把相关的status设定了就可以激发了,当然服务程序应该有相应处理过程,即使没有,status也会正常返回的。
过几天才能再来做这个事情,打一个包上传了。reset还要仔细再看看,wdf的resetdevice可能还是不如wdm那个,但是wdm今天看到了风险。