驱动
大、男人
这个作者很懒,什么都没留下…
展开
-
HelloWorld驱动
#include #include #define IN #define OUT NTSTATUS CreateDevice( PDRIVER_OBJECT driver);void DriverUnload(PDRIVER_OBJECT driver){ IoDeleteDevice(driver->DeviceObject); DbgPrint("DriverUn原创 2014-02-27 15:01:50 · 644 阅读 · 0 评论 -
应用层与驱动层同步事件处理方法
源地址:http://hi.baidu.com/zkriymfvqfbaglq/item/90207f0785d2b713cd34ea53 (不保证一定是最初的博文地址)关于这个问题高手略过吧。Ring3与Ring0同步是很有用的手段,在此做一个简要的整理,希望对开发这方面程序的朋友有帮助,好了,开始吧。1 同步的策略初写驱动的朋友都知道,通过DeviceIoC转载 2014-03-01 14:34:17 · 898 阅读 · 0 评论 -
ExAllocatePool函数
拿来一用~内核模式中的基本堆分配函数是ExAllocatePool。1.调用方式如下:PVOID p = ExAllocatePool(type, nbytes);2.参数type参数是常量,如下表所示。 POOL_TYPE 描述 NonPagedPool 从非分页内存池中分配内存转载 2014-03-03 09:41:55 · 1140 阅读 · 0 评论 -
驱动和应用共享内存
pOutBuf = Irp->AssociatedIrp.SystemBuffer;pSysAddr = DeviceObject->DeviceExtension;pMdl = IoAllocateMdl(pSysAddr,10,FALSE,FALSE,NULL);if(NULL == pMdl){ status = STATUS_UNSUCCESSFUL; br原创 2014-03-11 11:51:20 · 682 阅读 · 0 评论 -
同步技术
事件对象KeInitializeEventIoCreateNotificationEventIoCreateSynchronizationEventVOID KeInitializeEvent( IN PRKEVENT Event, IN EVENT_TYPE Type, IN BOOLEAN State );The KeI原创 2014-03-11 14:04:11 · 717 阅读 · 0 评论