驱动开发类
wuna66320
这个作者很懒,什么都没留下…
展开
-
安装DriverStudio3.2 过程中出现DSDDKEnv8.dll failed to register错误
原因,与VS2005集成时会发生此错误。解决方法,补丁:ftp://ftp.compuware.com/pub/driverstudio/outgoing/patch/DSDDKEnv.zip>Extract it into a temp directory. >Copy the file DSDDKEnv8.dll into the /DriverStudio/Common/Bin d转载 2007-08-12 01:02:00 · 1747 阅读 · 0 评论 -
同步 线程 事件
1. VOID KeInitializeEvent(IN PRKEVENT Event, IN EVENT_TYPE Type, IN BOOLEAN State);Type : 事件类型,可以是 NotificationEvent 和 而SynchronizationEvent. NotificationEvent 等待一个IO操作完成.当一个NotificationEvent原创 2007-12-10 08:40:00 · 2900 阅读 · 0 评论 -
驱动的一些基本函数
RtlInitUnicodeString函数的作用是计算Unicode字符串的大小并且填充UNICODE_STRING结构,一般来说, Unicode字符串都是在代码中静态定义的,并且在运行中保持不变,所以在链接的时候就把UNICODE_STRING结构给填好是完全可能的并且是很 容易的,这样更容易理解、 更节省空间(省去8字节的UNICODE_STRING结构、最多3字节的对齐空间以及至少14字原创 2007-12-10 08:06:00 · 2369 阅读 · 0 评论 -
函数......ObReferenceObjectByHandle
ObReferenceObjectByHandle函数来获得这个Handle对应的FileObject。我们只能给FileObject发送IRP。 stat=ObReferenceObjectByHandle(handle,GENERIC_READ,*IoFileObjectType,KernelMode,(PVOID*)&fileob,0);ObReferenceObjectByHandle(原创 2007-12-10 08:33:00 · 6162 阅读 · 1 评论 -
App- drive通讯
上层和驱动通信用DeviceIoControl函数,这是一个Win32 API,在SDK中定义。这个函数都会产生一个IRP_MJ_DEVICE_CONTROL包,如果驱动中注册过相应的例程,那么这个包就会引发该例程的工作。如果是驱动和驱动间的通信,那么用IoBuildDeviceControlRequest函数,该函数在DDK中定义,会产生一个IRP_INTERNAL_DEVICE_CONTROL原创 2007-12-17 13:17:00 · 1030 阅读 · 0 评论 -
app-drive传递字符串
outc=(CHAR *)pIrp->AssociatedIrp.SystemBuffer; strncpy(outc,"我爱你",sizeof("我爱你")); pIrp->IoStatus.Information=sizeof(原创 2007-12-17 20:50:00 · 651 阅读 · 0 评论 -
BDA驱动学习笔记(6):错误处理,内存管理以及字符串
错误处理:错误处理分为状态代码返回,异常处理和bug check三种,第三种(bug check)也就是我们在98系统里经常见到的蓝屏,nt系统里不常见但也会发生,真是很让人讨厌。不过万一驱动代码执行过程中发现了及其严重的错误,那么给个蓝屏应该是最好的选择,因为既然是“及其严重”的错误,继续执行下去操作系统会被搞坏。状态代码NTSTATUS是一个32位的整数,表征代码执行成功与否,它的结构如下转载 2007-12-17 13:50:00 · 1010 阅读 · 0 评论