WdfDriverCreate
来源:互联网 发布:网络体彩 实体合作 编辑:程序博客网 时间:2024/06/11 16:27
WDF的DriverEntry实例:
NTSTATUSDriverEntry( IN PDRIVER_OBJECT DriverObject, IN PUNICODE_STRING RegistryPath ){ WDF_DRIVER_CONFIG config; //此结构说明这个驱动程序的一些可配置项,包括EvtDriverDeviceAdd和EvtDriverUnload回调函数的入口地址,这个驱动在初始化时的一些标志和这个驱动在分配内存时使用的tag值。 NTSTATUS status = STATUS_SUCCESS; WDF_DRIVER_CONFIG_INIT( //一个宏,把MyEvtDeviceAdd回调函数的入口地址存入config,并且初始化config的其他部分。 &config, MyEvtDeviceAdd ); config.EvtDriverUnload = MyEvtDriverUnload;//设置Unload函数 status = WdfDriverCreate( //根据参数来对WDF中的一些环境进行初始化工作,并建立这个WDF驱动对象 DriverObject, //驱动对象 RegistryPath, //注册表路径 WDF_NO_OBJECT_ATTRIBUTES, //属性 &config, //WDF_DRIVER_CONFIG结构 WDF_NO_HANDLE ); if (!NT_SUCCESS(status)) { TraceEvents( TRACE_LEVEL_ERROR, DBG_PNP, "WdfDriverCreate failed with status %!STATUS!", status ); } return status;}
WDF_DRIVER_CONFIG
typedef struct _WDF_DRIVER_CONFIG { ULONG Size; //此结构的字节大小 PFN_WDF_DRIVER_DEVICE_ADD EvtDriverDeviceAdd; //驱动的EvtDriverDeviceAdd回调函数 PFN_WDF_DRIVER_UNLOAD EvtDriverUnload; //驱动的unload函数 ULONG DriverInitFlags; /*初始化标志 typedef enum _WDF_DRIVER_INIT_FLAGS { WdfDriverInitNonPnpDriver = 0x00000001, WdfDriverInitNoDispatchOverride = 0x00000002, WdfVerifyOn = 0x00000004, WdfVerifierOn = 0x00000008} WDF_DRIVER_INIT_FLAGS;,*/ ULONG DriverPoolTag; } WDF_DRIVER_CONFIG, *PWDF_DRIVER_CONFIG;
0 0
- WdfDriverCreate
- Message,MessageQueue,Looper,Handler详解+实例
- 每周内部讨论会声明
- 《Microsoft Sql server 2008 Internals》读书笔记--第六章Indexes:Internals and Management(1)
- Android ADB server didn't ACK * failed to start daemon *
- 【openfire】亲测Openfire:安装指南
- WdfDriverCreate
- git patch应用
- Ul 高度无法生效
- linux下,安装、编译、配置Qt:
- 64位win7系统VS2010下安装OpenCV2.4.9
- error:jquery 无法响应select的change事件
- CoreJava 8th V-1 P45 检测字符串是否相等
- 太精彩了(email)
- 使用log4net 来记录系统日志