总说程序员是孤独的,因为,大部分的时间都在和机器打交道大部分的时间都在自言自语我的内心需要足够的强大这种强大时建立的自信的基础上的而自信又是建立在实力基础上的实力又是建立在积累的基础上积累又是建立在时间的基础上所以归根结底,就是,需要花费更多的时间第二,需要有足够的兴趣爱好这两点对于现在的我来说,都有既然,自己选择了这条路,就应该义无反顾的走下去,坚持的走下去孤独,我不怕,困难,我也不怕,永远向上的动力,爱好,对知识的渴望,支持者我相信自己,相信明天,我来为大家科普一下关于wfi架构?下面希望有你要的答案,我们一起来看看吧!

wfi架构(WFP之四WFP代码基本流程的剖析)

wfi架构

总说程序员是孤独的,因为,大部分的时间都在和机器打交道。大部分的时间都在自言自语。我的内心需要足够的强大。这种强大时建立的自信的基础上的。而自信又是建立在实力基础上的。实力又是建立在积累的基础上。积累又是建立在时间的基础上。所以归根结底,就是,需要花费更多的时间。第二,需要有足够的兴趣爱好。这两点对于现在的我来说,都有。既然,自己选择了这条路,就应该义无反顾的走下去,坚持的走下去。孤独,我不怕,困难,我也不怕,永远向上的动力,爱好,对知识的渴望,支持者我。相信自己,相信明天。

今天实际看一下,WFP的Callout驱动的代码。先从DriverEntry开始:

1,在DriverEntry需要创建驱动对象和设备对象,

1.1 由于不是PNP设备,需要设置创建驱动对象的标志为config.DriverInitFlags |= WdfDriverInitNonPnpDriver.

1.2 调用WdfDriverCreate创建驱动对象。

1.3 调用WdfControlDeviceInitAllocate通过驱动对象创建 WDFDEVICE_INIT结构体。

1.4 调用WdfDeviceInitSetDeviceType设置设备类型为FILE_DEVICE_NETWORK.

1.5 调用WdfDeviceInitSetCharacteristics设置设备的特性为FILE_DEVICE_SECURE_OPEN和FILE_AUTOGENERATED_DEVICE_NAME.

,