驱动开发
qq_33400948
GO
展开
-
WFP知识总结
开发者在内核态使用WFP实现网络数据包过滤步骤:定义一个或多个呼出接口,向过滤引擎注册呼出接口添加呼出接口到过滤引擎设计一个或多个子层,将子层添加到分层中设计过滤器,把呼出接口、分层、子层和过滤器关联起来,向过滤引擎添加过滤器注册呼出接口 FwpsCalloutRegister0/FwpsCalloutRegister1/FwpsCalloutRegister2卸载呼出接口 FwpsCalloutUnregisterById/FwpsCalloutUnregisterByKey打开过滤引擎原创 2021-06-04 09:37:46 · 392 阅读 · 0 评论 -
WDF程序参数解析
为什么用注册表存储驱动信息RegistryPath驱动加载非常早,甚至仅仅晚于windows内核,这时文件系统还没建立,驱动程序如果在此时需要享有自己的可操作空间,只有注册表可使用。HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services为驱动信息存储位置。WDF_DRIVER_CONFIG 驱动程序的一些可配置参数,其中包含了EvtDriverDeviceAdd和EvtDriverUnload的入口地址以及驱动初始化时的一些标志和分配内存使用的tag值。原创 2021-05-31 15:37:03 · 804 阅读 · 0 评论 -
INF
[Area] 域[Area.SubArea] 子域AddReg = [Arae],[Area1] 指令域[Area]cmd = cmdParam, cmdParam1… 指令 指令名 = 指令参数,指令参数1…; 注释%name% 变量常用域[Version] --版本 Signature= “$WINDOWS NT$”--签名 DriverVer = mm/dd/yyyy //可选 Class --类名 Provider --提供者 CatalogFile --签名文件//原创 2021-05-26 17:53:53 · 130 阅读 · 0 评论 -
驱动程序调用驱动程序
以文件句柄形式调用其他驱动程序ZwCreateFile ZwReadFile ZwWriteFile通过设备指针调用其他驱动程序IoGetDeviceObjectPointer获取设备指针创建IRP传递给驱动的派遣函数得到设备指针 IoGetDeviceObjectPointer创建IRP IoBuildSynchronousFsdRequest IoBuildAsynchronousFsdRequest原创 2021-05-23 17:28:15 · 216 阅读 · 0 评论 -
定时器
I/O定时器IoInitializeTimer(pDevObj, OnTimer, NULL)IoStartTimerIoStopTimer#pragma LOCKEDCODE VOID OnTimer( IN PDEVICE_OBJECT DeviceObject, IN PVOID Context) { PDEVICE_EXTENSION pDevExt = (PDEVICE_EXTENSION) DeviceObject->DeviceExtension; KdPrint(("原创 2021-05-23 14:40:24 · 64 阅读 · 0 评论 -
驱动程序同步有关api
中断KeWait ForSingleObjectKeWaitForMultipleObjects线程PsCreateSystemThreadPsTerminateSystemThreadIoGetCurrentProcess事件KeInitializeEventKeSetEventObRegerenceObjectByHandle //减少引用计数IoCreateNotificationEvent //通知事件IoCreateSynchronizationEvent..原创 2021-05-22 17:00:21 · 107 阅读 · 0 评论 -
文件读写方式介绍
驱动的读写方式分为:缓冲区方式,直接方式,Nether方式(DO_BUFFERED_IO DO_DIRECT_IO DO_NETHER_IO)缓冲区方式:将数据从真实设备复制到内核层,再从内核层复制到应用层NTSTATUS HelloDDKRead(IN PDEVICE_OBJECT pDevObj, IN PIRP pIrp) { KdPrint(("Enter HelloDDKRead\n")); NTSTATUS status = STATUS_SUCCESS; PIO_STAC原创 2021-05-22 16:25:55 · 158 阅读 · 0 评论 -
注册表操作
梳理来源于张帆 windows驱动开发技术详解#define MY_REG_SOFTWARE_KEY_NAME L"\\Registry\\Machine\\Software\\Zhangfan"#pragma INITCODEVOID CreateRegTest() { //创建或打开某注册表项目 UNICODE_STRING RegUnicodeString; HANDLE hRegister; //初始化UNICODE_STRING字符串 RtlInitUnicodeStrin原创 2021-05-22 11:52:53 · 93 阅读 · 0 评论 -
文件操作
梳理来源于张帆 windows驱动开发技术详解#pragma INITCODEVOID CreateFileTest() { OBJECT_ATTRIBUTES objectAttributes; IO_STATUS_BLOCK iostatus; HANDLE hfile; UNICODE_STRING logFileUnicodeString; //初始化UNICODE_STRING字符串 RtlInitUnicodeString( &logFileUnicodeString原创 2021-05-22 11:02:10 · 108 阅读 · 0 评论 -
字符串操作
VOID StringInitTest() { //(1)用RtlInitAnsiString初始化字符串 ANSI_STRING AnsiString1; CHAR * string1= "hello"; //初始化ANSI_STRING字符串 RtlInitAnsiString(&AnsiString1,string1); KdPrint(("AnsiString1:%Z\n",&AnsiString1));//打印hello string1[0]='H'; str原创 2021-05-22 10:55:36 · 46 阅读 · 0 评论 -
使用lookside
目的频繁分配内存时,为减少内存碎片的产生可使用lookasideAPIPAGE_LOOKASIDE_LISTExInitializePagedLookasideListExInitializeNPagedLooksideListExAllocateFromPagedLookasideListExAllocateFromNPagedLookasideListExFreeToPagedLookasideListEXFreeToNPagedLookasideListTesttypedef M原创 2021-05-22 10:38:31 · 169 阅读 · 0 评论 -
链表操作
APIInitializeListHeadIsListEmptyInsertHeadListInsertTailListRemoveHeadListRemoveTailListCONTANING_RECORD使用typedef struct _MYDATASTRUCT{ UNLONG number; LIST_ENTRY ListEntry;}MYDATASTRUCT, *PMYDATASTRUCT#pragma INITCODEVOID Test(){ //初始化链表 L原创 2021-05-21 19:47:03 · 99 阅读 · 0 评论 -
内核模式API
内存操作ExAllocatePool()ExFreePool()RtlCopyMemoryRtlZeroMemoryRtlFillMemoryRtlRemoveMemoryRtlCompareMemory快查表 PAGED_LOOKASIDE_LIST字符串操作RtlInitUnicodeStringRtlCopyUnicodeStringRtlCompareUnicodeStirngRtlUpperUnicodeStringRtlUnicodeStringToInteg..原创 2021-05-21 18:35:18 · 91 阅读 · 0 评论 -
WDM HelloWord分析
书籍windows驱动开发技术详解 张帆内存操作ExAllocatePool() ExFreePool()双向链表typedef struct _LIST_ENTRY{ struct _LIST_ENTRY *Flink; struct _LIST_ENTRY *Blink;} LISTENTRYStruct MyListData { LIST_ENTRY list; Int age; int num; UnicodeString Name; }内存RtlCopyM原创 2021-05-21 17:40:42 · 141 阅读 · 1 评论 -
win10添加过时硬件调试wdm
以管理员权限启动cmd hdwwiz选择系统设备中的标准系统设备原创 2021-05-21 15:52:15 · 2708 阅读 · 0 评论