标签:驱动开发
WDF的DriverEntry实例:
NTSTATUS
DriverEntry(
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;
}
WdfDriverCreate,布布扣,bubuko.com
标签:驱动开发
原文地址:http://blog.csdn.net/liyun123gx/article/details/38400729