阅读:1295回复:2
请教一个初级问题
windows下的协议驱动,miniport驱动,网络适配器绑定到底之间有什么关系?比如网卡受到一个包后他怎么知道把这个包发给哪个protocol driver去处理,是protocol driver注册时告诉miniport driver它处理什么type的数据包吗?
还有如果我写了一个protocol driver,我想把这个driver绑定到所有网卡上,如果这时系统安装了一个新的网卡,怎么可以保证我的driver可以绑定到后来新安装的网卡上去? 新手问题比较低级,呵呵。望这里的高人指教。 |
|
沙发#
发布于:2007-09-14 14:02
这个问题其实比较复杂。你涉及到了NDIS比较核心的部分。在我们编写NDIS protocol driver时,我们在ProtocolBindAdapter可以侦测出将要绑定的网卡是什么类型的(比如ethernet)。我们可以决定要不要绑定这块网卡。对于一个protocol driver来说,NDIS会针对系统中所有的miniport adapter,呼叫多次ProtocolBindAdapter。每次把不同的miniport adpater传进来。
就是说,ProtocolBindAdapter会自动得到系统中所有的网卡。如果系统中新加了一块网卡,NDIS会自动再次呼叫所有protocol driver的ProtocolBindAdapter函数。 本质上来说,一快网卡同时被多个protocol绑定;一个protocol driver也同时绑定了多块网卡。他们是m:n的关系。 |
|
板凳#
发布于:2007-09-29 10:51
多谢,明白了
|
|